Amaç
wp_schedule_single_event( )
Kullanıcı bir form gönderdikten 8 dakika sonra bana e-posta gönderen tek bir etkinliği yürütmek için kullanmak istiyorum .
Sorun
Aşağıdaki kod benim functions.php
:
function nkapi_send_to_system( $args ) {
wp_mail( 'xxx', 'xxx', $args );
}
add_action( 'nkapi_send', 'nkapi_send_to_system' );
function schedule_event( $id ) {
wp_schedule_single_event( current_time( 'timestamp' ) + 480, 'nkapi_send', array( $id ) );
}
Ve aşağıdaki kodu aramak için kullanılır schedule-event
:
schedule_event( $_SESSION['insert_id'] ); // the $_SESSION var contains an INT
8 dakikadan fazla bekledikten sonra gelen kutumda bir e-posta yoktu.
Ne denedim
Eklenti Çekirdek Kontrolü ile cron işlerinin planlandığını görmek mümkündür.
Birkaç değişiklikten sonra onları oldukça düzeltmeyi başardım ve daha iyisi, "Şimdi Çalıştır" tuşuna bastığımda, aslında gelen kutuma bir e-posta alıyorum.
Ama 8 dakika sonra sitemi ziyaret ettiğimde neden cronlar çalışmıyor? Bu kodda yanlış olan ne olabilir? WP Cron'u ilk kez kullandığımı söylemeliyim.
Daha çok denedim
Vancoder id yorumundan sonra ben doğrudan aşağıdaki kodu koyarsanız kodun çalışıp çalışmadığını test etmeye karar verdi functions.php
:
function schedule_event( $id ) {
wp_schedule_single_event( time(), 'nkapi_send', array( $id ) );
}
if ( isset( $_SESSION['insert_id'] ) ) {
if ( ! array_key_exists( 'insert_scheduled', $_SESSION ) || $_SESSION['insert_scheduled'] != $_SESSION['insert_id'] ) {
schedule_event( $_SESSION['insert_id'] );
$_SESSION['insert_scheduled'] = $_SESSION['insert_id'];
}
}
Bu kodun dezavantajı, kullanıcının bu kod yürütülmeden önce başka bir sayfaya gitmesi gerektiğidir. Ama diğer taraftan, bu da işe yaramıyor, bu yüzden ilk sorunum olmayacak ...
schedule_event( )
, kısayol tarafından yüklenen dahil edilen dosyanın üstünde diyelim.
schedule_event( $_SESSION['insert_id'] );
kovulur?