Created
May 8, 2018 11:17
-
-
Save hwkdev/aeb8eb1d81c64fd9212265c34a5701fb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Admin Filter Date Range: Enqueue | |
add_action('admin_enqueue_scripts', 'hwk_filter_date_range_enqueue'); | |
function hwk_filter_date_range_enqueue(){ | |
global $pagenow; | |
if($pagenow != 'edit.php' && $pagenow != 'upload.php') | |
return; | |
wp_enqueue_script('momentjs', '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js', array(), null); | |
wp_enqueue_script('jquery-ui-datepicker', array(), null); | |
wp_enqueue_script('jquery-ui-datepicker-filter', get_template_directory_uri() . '/assets/js/datepicker-filter.js', array('jquery'), null); | |
wp_enqueue_style('jquery-ui', '//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.min.css', array(), null); | |
wp_enqueue_style('datepicker-styles', get_template_directory_uri() . '/assets/css/datepicker-styles.css', array(), null); | |
wp_enqueue_style('datepicker-fitler', get_template_directory_uri() . '/assets/css/datepicker-filter.css', array(), null); | |
} | |
// Admin Filter Date Range: Form | |
add_action('restrict_manage_posts', 'hwk_filter_date_range_form'); | |
function hwk_filter_date_range_form(){ | |
$filter_date_start = $filter_date_end = ''; | |
if(isset($_GET['filter_date_start']) && ($date = strtotime($_GET['filter_date_start']))) | |
$filter_date_start = date('d/m/Y', $date); | |
if(isset($_GET['filter_date_end']) && ($date = strtotime($_GET['filter_date_end']))) | |
$filter_date_end = date('d/m/Y', $date); | |
?> | |
<div class="filter_date_range_wrapper <?php echo ($filter_date_start) ? 'active': ''; ?>"> | |
<input type="text" placeholder="<?php _e('From'); ?>" class="filter_datepicker filter_datepicker_from" value="<?php echo $filter_date_start; ?>" /> | |
<span></span> | |
</div> | |
<div class="filter_date_range_wrapper <?php echo ($filter_date_end) ? 'active': ''; ?>"> | |
<input type="text" placeholder="<?php _e('To'); ?>" class="filter_datepicker filter_datepicker_to" value="<?php echo $filter_date_end; ?>" /> | |
<span></span> | |
</div> | |
<input type="hidden" name="filter_date_start" id="filter_datepicker_from" value="<?php echo $filter_date_start; ?>" /> | |
<input type="hidden" name="filter_date_end" id="filter_datepicker_to" value="<?php echo $filter_date_start; ?>" /> | |
<?php | |
} | |
// Admin Filter Date Range: Query | |
add_action('pre_get_posts', 'hwk_filter_date_range_query'); | |
function hwk_filter_date_range_query($query){ | |
global $pagenow; | |
if(!is_admin() || !$query->is_main_query() || ($pagenow != 'edit.php' && $pagenow != 'upload.php') || (empty($_GET['filter_date_start']) && empty($_GET['filter_date_end']))) | |
return; | |
$date_query = array(); | |
$date_query['inclusive'] = true; | |
if(isset($_GET['filter_date_start']) && !empty($_GET['filter_date_start']) && strtotime($_GET['filter_date_start'])) | |
$date_query['after'] = $_GET['filter_date_start']; | |
if(isset($_GET['filter_date_end']) && !empty($_GET['filter_date_end']) && strtotime($_GET['filter_date_end'])) | |
$date_query['before'] = $_GET['filter_date_end']; | |
$query->set('date_query', $date_query); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment