WordPress 的 Cron 作业:在自定义插件中不起作用

问题描述 投票:0回答:1

我创建了一个插件,用于使用某些页面的自定义字段生成 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 作业。

wordpress cron
1个回答
0
投票

我通过在服务器端设置一个 cron 作业解决了这个问题,一切正常。 讨论结束并解决。

© www.soinside.com 2019 - 2024. All rights reserved.