लक्ष्य
मैं wp_schedule_single_event( )
किसी एक ईवेंट को निष्पादित करने के लिए उपयोग करना चाहता हूं जो मुझे उपयोगकर्ता को एक फॉर्म सबमिट करने के 8 मिनट बाद ई-मेल भेजता है।
समस्या
निम्नलिखित कोड मेरे में है 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 ) );
}
और कॉल करने के लिए निम्न कोड का उपयोग किया जाता है schedule-event
:
schedule_event( $_SESSION['insert_id'] ); // the $_SESSION var contains an INT
8 मिनट से अधिक प्रतीक्षा करने के बाद मेरे इनबॉक्स में कोई ई-मेल नहीं था।
मैंने क्या कोशिश की
प्लगइन कोर नियंत्रण के साथ यह देखना संभव है कि विच क्रोन जॉब्स शेड्यूल किए गए हैं।
कुछ बदलावों के बाद, मैं उन्हें काफी सही और बेहतर बनाने में कामयाब रहा, जब मैंने "रन नाउ" को हिट किया, तो मुझे वास्तव में मेरे इनबॉक्स में एक ई-मेल मिला।
लेकिन जब मैं अपनी साइट पर 8 मिनट के बाद जाता हूं तो क्रोन का निष्पादन क्यों नहीं होता है। संभवतः इस कोड में क्या गलत है? मुझे यह कहना है कि WP Cron का उपयोग करते हुए यह मेरा पहला अवसर है।
मैंने और कोशिश की
Vancoder id की टिप्पणी के बाद परीक्षण करने का निर्णय लिया गया कि क्या कोड काम करता है अगर मैं निम्नलिखित कोड सीधे इसमें डालूं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'];
}
}
इस कोड का नकारात्मक पहलू यह है कि उपयोगकर्ता को इस कोड को निष्पादित करने से पहले किसी अन्य पृष्ठ पर जाना होगा। लेकिन दूसरी तरफ, यह या तो काम नहीं करता है ताकि मेरा पहला मुद्दा न हो ...
schedule_event( )
, जो शोर्टकोड द्वारा लोड की गई शामिल फाइल के ऊपर कहता है।
schedule_event( $_SESSION['insert_id'] );
फायर किया जाता है?