b0y-101 Mini Shell


Current Path : E:/www2/kidsbangna/wp-content/plugins/dw-question-answer/inc/
File Upload :
Current File : E:/www2/kidsbangna/wp-content/plugins/dw-question-answer/inc/Autoclosure.php

<?php
if ( !defined( 'ABSPATH' ) ) exit;

class DWQA_Autoclosure {
	private $days = 1;
	public function __construct() {
		global $dwqa_general_settings;
		if(isset($dwqa_general_settings['use-auto-closure']) && $dwqa_general_settings['use-auto-closure']){
			if(isset($dwqa_general_settings['number-day-auto-closure']) && is_numeric($dwqa_general_settings['number-day-auto-closure']) && $dwqa_general_settings['number-day-auto-closure']>0){
				
				$this->days = $dwqa_general_settings['number-day-auto-closure'];
				
				add_filter( 'cron_schedules', array($this, 'dwqa_add_schedule') );
				
				if (! wp_next_scheduled ( 'auto_closure' )) {
					wp_schedule_event(time(), 'half_daily', 'auto_closure');
				}
				
				add_action('auto_closure', array($this, 'do_auto_closure'));
			}
		}else{
			wp_clear_scheduled_hook( 'auto_closure' );
		}
	}
	
	public function do_auto_closure(){
		$days = $this->days;
		$posts = get_posts(array(
			'post_type' => 'dwqa-question',
			'date_query' => array(
								array(
									'column' => 'post_modified_gmt',
									'before' => $days.' day ago',
								),
						),
			'meta_query' => array(
								array(
									'key'	=> '_dwqa_status',
									'value' => 'closed',
									'compare' =>'!='
								)
						)
		));
		foreach($posts as $value){
			update_post_meta( $value->ID, '_dwqa_status', 'closed' );
		}
	}
	
	public function dwqa_add_schedule( $schedules ) {
		// add a 'weekly' schedule to the existing set
		/* $schedules['weekly'] = array(
			'interval' => 604800,
			'display' => __('Once Weekly', 'dw-question-answer')
		);
		$schedules['monthly'] = array(
			'interval' => 2635200,
			'display' => __('Once a month', 'dw-question-answer')
		);
		$schedules['minutely'] = array(
			'interval' => 60,
			'display' => __('Minutely', 'dw-question-answer')
		); */
		$schedules['half_daily'] = array(
			'interval' => 43200,
			'display' => __('Half Daily', 'dw-question-answer')
		);
		return $schedules;
	}
	
}
?>

Copyright © 2019 by b0y-101