اجرای دستورات برنامه ریزی شده در وردپرس هر ۳ دقیقه یکبار

1

[box type=”info” radius=”5″]لینک مرجع: Run a wp_schedule_event Recurrence Every 3 Minutes[/box]

 

آیا میخواهید دستورات منطقی خود را هر چند دقیقه یکبار در وردپرس اجرا نمایید؟ به صورت پیش فرض دستور wp_schedule_event در وردپرس اجازه تکرار دستورات را به صورت “ساعتی” و “دوبار در روز” و یا “روزانه” می دهد. اما در این مطلب قصد داریم با روش اجرای دستورات در هر ۳ دقیقه آشنا شویم.

عدد ۳ در این مثال قابل تغییر می باشد و شما میتوانید از هر عدد دیگری مثلا ۱۷ دقیقه استفاده نمایید و همچنین میتوانید چندین بار از این روش استفاده نمایید.

برای افزودن دستورات اجرایی برای هر ۳ دقیقه از طریق WP Cron باید از کد زیر استفاده نمایید:

[php]

function isa_add_cron_recurrence_interval( $schedules ) {

$schedules[‘every_three_minutes’] = array(
‘interval’  => 180,
‘display’   => __( ‘Every 3 Minutes’, ‘textdomain’ )
);

return $schedules;
}
add_filter( ‘cron_schedules’, ‘isa_add_cron_recurrence_interval’ );

[/php]

برای اجرای کد فوق در هر ۵ یا ۱۰ و یا ۱۵ دقیقه مراحل زیر را انجام دهید:

  • عدد ۱۸۰ در خط ۴ بر اساس ثانیه می باشد یعنی ۳*۶۰ . به عنوان مثال برای تبدیل به ۵ دقیقه از عدد ۳۰۰ و برای ۱۰ دقیقه از عدد ۶۰۰ استفاده نمایید.
  • در خط سوم به جای عبارت کلیدی every_three_minutes برای ۵ دقیقه از عبارت every_five_minutes استفاده نمایید.
  • در خط پنجم به جای عبارت ‘Every 3 Minutes’ از عبارت ‘Every 5 Minutes’ برای ۵ دقیقه استفاده نمایید.

افزودن بیش از یک حالت

شما میتوانید از روش فوق بی نهایت بار استفاده نمایید. شما میتوانید با مراحل فوق بیش از یک ساختار برای خود و با توالی های زمانی مختلف ایجاد نمایید.

[php]
function isa_add_cron_recurrence_interval( $schedules ) {
 
    $schedules[‘every_three_minutes’] = array(
            ‘interval’  => 180,
            ‘display’   => __( ‘Every 3 Minutes’, ‘textdomain’ )
    );
 
    $schedules[‘every_fifteen_minutes’] = array(
            ‘interval’  => 900,
            ‘display’   => __( ‘Every 15 Minutes’, ‘textdomain’ )
    ); 
     
    return $schedules;
}
add_filter( ‘cron_schedules’, ‘isa_add_cron_recurrence_interval’ );
[/php]

مثال کاربردی: استفاده از کد فوق برای اجرای یک کد زمان بندی شده

هم اکنون شما میتوانید از دستور‘every_three_minutes’  برای استفاده در تابع wp_schedule_event استفاده نمایید.(اگر از عبارت دیگری به جای ‘every_three_minutes’ در معرفی تابع خود استفاده کرده اید، از عبارت جدید استفاده نمایید)

[php]
wp_schedule_event( time(), ‘every_three_minutes’, ‘your_three_minute_action_hook’ );
[/php]

همواره بررسی نمایید که رویداد مورد نظر شما قبلا فراخوانی نشده باشد. فراخوانی مجدد موجب ارسال خطا خواهد شد.

[php]
if ( ! wp_next_scheduled( ‘your_three_minute_action_hook’ ) ) {
    wp_schedule_event( time(), ‘every_three_minutes’, ‘your_three_minute_action_hook’ );
}
[/php]

تست درست بودن کدهای فوق

مثال زیر برای ارسال ایمیل زمان بندی شده طبق روش فوق برنامه ریزی شده است.

ابتدا باید بلوک کد ۱ و ۲ را از مجموعه کدهای فوق به کدهای خود اضافی نمایید و سپس از کدهای زیر استفاده نمایید.

کدهای زیر برای ساخت رویداد تست به صورت ارسال ایمیل در هر سه دقیقه برنامه ریزی شده است. در خط ۴ میتوانید از آدرس ایمیل خود جهت دریافت ایمیل های تستی استفاده نمایید.

[php]
add_action(‘your_three_minute_action_hook’, ‘isa_test_cron_job_send_mail’);
 
function isa_test_cron_job_send_mail() {
    $to = ‘you@gmail.com’;
    $subject = ‘Test my 3-minute cron job’;
    $message = ‘If you received this message, it means that your 3-minute cron job has worked! <img draggable="false" class="emoji" alt=" " src="https://s.w.org/images/core/emoji/2.3/svg/1f642.svg"> ‘;
 
    wp_mail( $to, $subject, $message );
 
}
[/php]

1 نظر
  1. آرگان می گوید

    خوب بود اتفاقی از گوگل اومدم اینجا ولی خوب بود برای دوستم فرستادم اونم دنبالشه اونم بیاد ببینه

    ممنون که سرعت سایتتون بالاست برای این تو خیلی از سایتا رفتم ولی سرعت سایتشون بد بود خداروشکر که راحت چیزی که میخواستم پیدا کردم

    ممنون

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.