繁体   English   中英

WordPress计划任务删除超过48小时的行

[英]WordPress scheduled task to delete rows older than 48 hours

我正在尝试设置一个cron作业来删除超过48小时的行。 我以前从未这样做过,并决定尝试制作WP预定任务。 下面是我的functions.php文件中的代码。 我假设删除行/查询错误。 任何帮助,将不胜感激; 或者,如果有一种更容易的方式,我也会对此持开放态度。 谢谢。

add_action('init','es4u_delete_old_videos');
add_action('es4u_delete_video','es4u_delete_video_func');

function es4u_delete_video_func() {
    $servername = "localhost";
    $username = "username";
    $password = "pass";
    $dbname = "db";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    DELETE * FROM awdwp_webinar_orders WHERE start_time < DATEADD(HOUR,-48,GETDATE());
}

function es4u_delete_old_videos(){
  if(!wp_next_scheduled('es4u_delete_video')) {
       wp_schedule_event (time(), 'hourly', 'es4u_delete_video');
    }
}

编辑:这是我现在拥有的,但表格仍然没有删除。 任何的想法?

add_action('init','es4u_delete_old_videos');
add_action('es4u_delete_video','es4u_delete_video_func');

function es4u_delete_video_func() {
    global $wpdb;
    $sql = 'DELETE * FROM awdwp_webinar_orders WHERE start_time < DATEADD(HOUR,-48,GETDATE());';
    $wpdb->query( $sql );
}

function es4u_delete_old_videos(){
  if(!wp_next_scheduled('es4u_delete_video')) {
       wp_schedule_event (time(), 'hourly', 'es4u_delete_video');
    }
}

您可以使用内置的WordPress类wpdb代替使用mysqli函数来为您完成一些工作。 WordPress创建一个可以使用的全局$wpdb对象。

function es4u_delete_video_func() {
    global $wpdb;
    $sql = 'DELETE FROM awdwp_webinar_orders WHERE start_time < DATE_ADD( NOW(), INTERVAL -48 HOUR )';
    $wpdb->query( $sql );

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM