自Wordpress 5起,自定义帖子类型的Cron作业不起作用

时间:2019-03-19 13:42:00

标签: wordpress cron

自从Wordpress 5.1(或者说一般是5)以来,我在执行cron作业时遇到了问题。

此cron顶部正在过滤过期的自定义帖子(优惠券),并将其标记为“不可靠”,但不再起作用。无法找到问题,需要一些帮助。

此代码:

    function clpr_coupon_prune() {
    global $clpr_options;

    $message = '';
    $links_list = '';
    $subject = __( 'Clipper Coupons Expired', APP_TD );

    if ( ! $clpr_options->prune_coupons ) {
        return;
    }

    // Get all coupons with an expired date that have expired
    $args = array(
        'post_type' => APP_POST_TYPE,
        'expired_coupons' => true,
        'posts_per_page' => -1,
        'fields' => 'ids',
        'no_found_rows' => true,
        'meta_query' => array(
            array(
                'key' => 'clpr_expire_date',
                'value' => '',
                'compare' => '!=',
            )
        )
    );
    $expired = new WP_Query( $args );

    if ( isset( $expired->posts ) && is_array( $expired->posts ) ) {
        foreach ( $expired->posts as $post_id ) {
            wp_update_post( array( 'ID' => $post_id, 'post_status' => 'draft' ) );
            $links_list .= html( 'li', get_permalink( $post_id ) ) . PHP_EOL;
        }
    }

    $message .= html( 'p', __( 'Your cron job has run successfully. ', APP_TD ) ) . PHP_EOL;
    if ( empty( $links_list ) ) {
        $message .= html( 'p', __( 'No expired coupons were found.', APP_TD ) ) . PHP_EOL;
    } else {
        $message .= html( 'p', __( 'The following coupons expired and have been taken down from your website: ', APP_TD ) ) . PHP_EOL;
        $message .= html( 'ul', $links_list ) . PHP_EOL;
    }

    $message .= html( 'p', __( 'Regards,', APP_TD ) . '<br />' . __( 'Clipper', APP_TD ) ) . PHP_EOL;

    if ( $clpr_options->prune_coupons_email ) {
        $email = array( 'to' => get_option( 'admin_email' ), 'subject' => $subject, 'message' => $message );
        $email = apply_filters( 'clpr_email_admin_coupons_expired', $email );

        appthemes_send_email( $email['to'], $email['subject'], $email['message'] );
    }
}
add_action( 'clpr_coupon_prune', 'clpr_coupon_prune' );


/**
 * Schedules a daily event to prune coupons which have expired.
 *
 * @return void
 */
function clpr_schedule_coupon_prune() {
    if ( ! wp_next_scheduled( 'clpr_coupon_prune' ) ) {
        wp_schedule_event( time(), 'daily', 'clpr_coupon_prune' );
    }
}
add_action( 'init', 'clpr_schedule_coupon_prune' );

真的很感谢您的帮助和建议,以解决此问题。只是不明白为什么Wordpress 5.1没有运行cron作业!

0 个答案:

没有答案