Ich versuche, einen Cron-Job für eine benutzerdefinierte Beitragstyp (Job Listings), die zwei ACF benutzerdefinierte Felder enthält, einzurichten.Benutzerdefiniertes Feld mit Cron-Job in WordPress aktualisieren
- Datumsauswahl - Benutzer können wählen, den Jobs (‚job_listing_closing_date‘)
- Funkfeldschluss - Offen & geschlossen Entscheidungen. (‚Job_listing_status‘)
Ich brauche das Funkfeld von ‚Open‘ zu ‚Geschlossen‘ im Backend-Post-Bearbeitungsbildschirm zu ändern, wenn die job_listing_closing_date bestanden hat. Hier ist mein Code im Moment, der sich in der Datei '/wp-content/themes/themename/assets/functions/cpt-job-listings.php befindet.
Ich habe die folgenden Code auf der Website hinzugefügt, aber nichts passiert. Vielleicht ist die Abfrage falsch oder die ACF-Felder sind in der Datei, in der ich codiert habe, nicht verfügbar?
// Create a cron job in order to check the custom field of 'job_listing_closing_date' against today's date. If the date has passed, set the job status to 'closed' and display different content on front-end.
// Scheduled Action Hook
function check_job_end_date() {
// WP_Query arguments
$listings = array (
'post_type' => 'job_listings',
'posts_per_page' => -1,
'meta_key' => 'job_listing_closing_date',
'meta_query' => array(
'key' => 'job_listing_closing_date',
'value' => date('Ymd'),
'compare' => '<',
'type' => 'NUMERIC',
)
);
global $post;
if ($listings->have_posts()) {
while ($listings->have_post()) {
$listings->the_post();
update_field('job_listing_job_status', 'Closed');
//update_post_meta($post->ID, 'job_listing_job_status', 'Closed');
}
wp_reset_postdata();
}
}
// Schedule Cron Job Event
function job_listing_cron_job() {
if (! wp_next_scheduled('check_job_end_date')) {
wp_schedule_event(date('Ymd'), 'daily', 'check_job_end_date');
}
}
Getestet mit DATE auch und überprüft, dass die Datumsformate übereinstimmen. Ich habe auch eine benutzerdefinierte Seite Vorlage erstellt und diese WP_Query ausführen, um zu sehen, ob es die richtigen Details echo'd, was es tut. –