我创建了一个插件,用于使用某些页面的自定义字段生成 CSV。 CSV 文件的生成必须通过单击按钮(并且这可以正常工作)或通过每天在特定时间执行该函数一次的 cron 作业(这不起作用)来生成。
如何解决?或者我可以检查什么?
下面我给大家留下完整的代码。
谢谢你
<?php
/*
Plugin Name: #
Plugin URI: #
Description: #
Version: 1.0
Author: #
Author URI: #
*/
add_action('admin_menu', 'registra_pagina_opzioni');
add_action('genera_csv_tratte_event', 'genera_csv_tratte');
register_activation_hook(__FILE__, 'schedula_generazione_csv');
register_deactivation_hook(__FILE__, 'rimuovi_schedulazione_csv');
function registra_pagina_opzioni() {
add_management_page(
'Genera Feed CSV',
'Genera Feed CSV',
'manage_options',
'genera-feed-csv',
'pagina_opzioni_genera_feed_csv'
);
}
function pagina_opzioni_genera_feed_csv() {
if (isset($_POST['genera_csv'])) {
genera_csv_tratte();
echo '<div class="updated"><p>Il file CSV è stato generato manualmente.</p></div>';
}
?>
<div class="wrap">
<h2>Genera Feed CSV</h2>
<form method="post" action="">
<input type="submit" name="genera_csv" value="Genera CSV" class="button button-primary">
</form>
</div>
<?php
}
function genera_csv_tratte() {
// code to generate file
}
function schedula_generazione_csv() {
if (!wp_next_scheduled('genera_csv_tratte_event')) {
wp_schedule_event(strtotime('23:00:00'), 'daily', 'genera_csv_tratte_event');
}
}
function rimuovi_schedulazione_csv() {
$timestamp = wp_next_scheduled('genera_csv_tratte_event');
wp_unschedule_event($timestamp, 'genera_csv_tratte_event');
}
如果我通过“cronjob管理器”插件运行cronjob,该函数运行正常并且文件生成,所以这不是问题。
我停用并重新激活该插件,以便我可以“重置”现有的 cron 作业。
我通过在服务器端设置一个 cron 作业解决了这个问题,一切正常。 讨论结束并解决。