برنامه نویسی

چگونه یک جمع بندی هفتگی از ورودی های فرم های جاذبه در وب سایت خود را برنامه ریزی کنید

در این پست وبلاگ، به شما نشان خواهیم داد که چگونه یک جمع بندی هفتگی از ورودی های Gravity Forms خود را برنامه ریزی کنید و آنها را مستقیماً از وب سایت خود به صندوق ورودی ایمیل خود ارسال کنید. به این ترتیب، می توانید بدون نیاز به بررسی دستی فرم های خود هر روز، در مورد فرم های ارسالی جدید به روز باشید.

آنچه شما نیاز خواهید داشت:

یک وب سایت وردپرس با Gravity Forms نصب و فعال شده است
درک اولیه PHP
مراحل برای برنامه ریزی جمع بندی هفتگی ورودی های فرم های جاذبه

قطعه کد را به فایل functions.php تم خود یا یک افزونه سفارشی اضافه کنید
اولین قدم این است که قطعه کد زیر را به فایل functions.php تم یا یک افزونه سفارشی اضافه کنید. این قطعه کد از سیستم زمان‌بندی داخلی وردپرس برای تولید و ارسال گزارشی از ورودی‌های Gravity Forms شما یک بار در هفته استفاده می‌کند.

// عملکرد گزارش هفتگی را برای مقداردهی اولیه وردپرس برنامه ریزی کنید
add_action('init', 'schedule_weekly_gf_report' );

تابع schedule_weekly_gf_report() {
if ( ! wp_next_scheduled( 'weekly_gf_report_hook' ) ) {
wp_schedule_event( time(), 'weekly', 'weekly_gf_report_hook' );
}
}

// تابع ارسال ایمیل گزارش هفتگی
add_action('weekly_gf_report_hook', 'send_weekly_gf_entries' );

تابع send_weekly_gf_entries() {

// 1. شناسه فرم و ایمیل گیرنده را تعریف کنید
$form_id = 1; // با شناسه فرم خود جایگزین کنید
$recipient_email = 'client@example.com'; // با ایمیل گیرنده خود جایگزین کنید
$subject = 'ورودی های فرم های جاذبه هفتگی';

// 2. محاسبه محدوده تاریخ (7 روز گذشته)
$end_date = date( 'Ymd H:i:s' );
$start_date = date( 'Ymd H:i:s', strtotime( '-7 روز' ) );

// 3. پرس و جو ورودی
$search_criteria = آرایه(
'date_from' => $start_date،
'date_to' => $end_date،
)
مرتب سازی $ = آرایه();
$paging = array( 'page_size' => 200 ); // در صورت نیاز اندازه صفحه را تنظیم کنید

$entries = GFAPI::get_entries($form_id، $search_criteria، $ sorting، $paging );

if ( is_wp_error( $entries ) ) {
error_log( 'خطا در بازیابی ورودی ها: ' . $entries->get_error_message() );
بازگشت؛
}

if ( خالی ( $entries ) ) {
wp_mail($recipient_email، $subject، 'این هفته هیچ ورودی وجود ندارد.' );
بازگشت؛
}

// 4. قالب ایمیل (مثال: جدول)
$message = “

”؛
$message .= “

”؛
foreach(GFAPI::get_form($form_id)[‘fields’] به عنوان $field ){
$message .= “

”؛
}
$message .= “

”؛

foreach ( $entries به عنوان $entry ) {
$message .= “

”؛

foreach(GFAPI::get_form($form_id)[‘fields’] به عنوان $field ){

$value = rgar( $entry, $field->id );

$message .= “

”؛

}

$message .= “

”؛

}

$message .= “

” . $field->label . “
” . ارزش دلار “

”؛

// 5. ارسال ایمیل
$headers = array('Content-Type: text/html; charset=UTF-8');
$mail_sent = wp_mail($recipient_email، $subject، $message، $headers );

if ( ! $mail_sent ) {
error_log( 'خطا در ارسال ایمیل.' );
}
}

کارکرد

زمان بندی:

تابع () schedule_weekly_gf_report به اکشن init متصل شده است که هنگام شروع اولیه وردپرس اجرا می شود.
در داخل schedule_weekly_gf_report()، بررسی می کند که آیا یک برنامه هفتگی برای weekly_gf_report_hook از قبل تنظیم شده است یا خیر. اگر نه، از wp_schedule_event() برای برنامه ریزی weekly_gf_report_hook برای اجرای هر هفته استفاده می کند.
ارسال ایمیل:

تابع send_weekly_gf_entries() به weekly_gf_report_hook متصل است. این جایی است که منطق تولید و ارسال ایمیل واقعی است.
شناسه فرم و گیرنده:

متغیرهای $form_id و $recipient_email در ابتدا تعریف شده اند. اینها را با شناسه فرم واقعی خود و آدرس ایمیل گیرنده جایگزین کنید.
محدوده تاریخ:

$start_date و $end_date برای نشان دادن 7 روز گذشته محاسبه می‌شوند.
درخواست ورودی:

GFAPI::get_entries() برای واکشی ورودی ها از فرم مشخص شده در محدوده تاریخ استفاده می شود.
'status' => 'active' در $search_criteria برای حذف موارد ارسالی هرزنامه بسیار مهم است.
رسیدگی به خطا:

خطاها را در حین بازیابی ورودی بررسی می کند و با استفاده از error_log() آنها را ثبت می کند.
اگر هیچ ورودی یافت نشد، یک ایمیل با عنوان «این هفته ورودی وجود ندارد» ارسال می کند.
قالب بندی ایمیل:

یک جدول HTML برای نمایش ورودی ها ایجاد می کند.
از طریق فیلدهای فرم برای تولید هدر جدول تکرار می شود.
از طریق ورودی ها برای پر کردن ردیف های جدول با مقادیر فیلد تکرار می شود.
ارسال ایمیل:

از wp_mail() برای ارسال ایمیل فرمت شده استفاده می کند.
شامل مدیریت خطاهای اساسی برای ارسال ایمیل است.
نکات کلیدی و ملاحظات

امنیت: اگر با داده های حساس سر و کار دارید، ایمیل را رمزگذاری کنید یا از روش ایمن تر انتقال داده استفاده کنید.
مجموعه داده‌های بزرگ: برای فرم‌هایی با تعداد ورودی‌های زیاد، ممکن است لازم باشد پرس و جو را بهینه کنید یا از روش دیگری مانند صادرات به یک فایل CSV استفاده کنید.
سفارشی سازی ها: می توانید این کد را به موارد زیر سفارشی کنید:
داده‌های اضافی را در ایمیل اضافه کنید (مثلاً مهرهای زمانی ارسال، آدرس‌های IP کاربر).
فرمت ایمیل را متفاوت (به عنوان مثال، با استفاده از یک الگوی متفاوت).
گزارش را برای چندین گیرنده ارسال کنید.
گزینه های فیلتر پیشرفته تری را اضافه کنید (مثلاً بر اساس وضعیت ورودی، فیلدهای خاص).
تست: قبل از استقرار کد در سایت تولید خود، آن را به طور کامل تست کنید.
نحوه استفاده:

Install Gravity Forms: مطمئن شوید که Gravity Forms را در سایت وردپرس خود نصب و فعال کرده اید.
کد را اضافه کنید: قطعه کد را در فایل functions.php تم خود قرار دهید یا یک افزونه سفارشی ایجاد کنید.
جایگزینی Placeholders: $form_id و $recipient_email را با مقادیر واقعی خود به‌روزرسانی کنید.
تست: تابع send_weekly_gf_entries() را یک بار به صورت دستی فعال کنید تا ارسال و قالب بندی ایمیل را آزمایش کنید.
این کد پایه محکمی برای برنامه ریزی گزارش های ورودی هفتگی Gravity Forms فراهم می کند. شما می توانید آن را بیشتر سفارشی کنید تا نیازهای خاص و الزامات گزارش دهی خود را برآورده کند.

اگر سؤال دیگری دارید یا نیاز به کمک اضافی دارید، در صورت تمایل بپرسید! تماس با ما با تماس +15309688916 یا ایمیل info@creativetugs.com

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا