wpmudev-sls
10/29/2017 - 8:42 AM

This MU plugin allows find certificate by date using format Y-m-d

This MU plugin allows find certificate by date using format Y-m-d

<?php
function wpmu_coursepress_get_certificate_by_date( $obj ) {
	if ( !empty( $_GET['action'] ) && 'coursepress_assessments' === $_GET['action'] ) {
		if ( !empty( $obj->query_vars['search_columns'] ) && array( 'user_login', 'user_nicename', 'user_email' ) === $obj->query_vars['search_columns']
				&& ( $date = strtotime( str_replace( '*', '', $obj->query_vars['search'] ) ) ) ) {
			preg_match( '/\d+$/', $obj->query_vars['meta_key'], $matches );
			$id_course = !empty( $matches[0] ) ? (int)$matches[0] : '';
			if ( $id_course ) {
				global $wpdb;
				$date = date( 'Y-m-d', $date );
				$user_ids = $wpdb->get_col( "SELECT post_author FROM {$wpdb->posts} WHERE post_type='cp_certificate' AND post_parent={$id_course} AND post_date LIKE '{$date}%'" );
				if ( empty( $user_ids ) ) {
					$user_ids[] = 0;
				}
				$user_args = array(
						'fields' => 'ID',
						'include' => $user_ids,
				);

				$obj->query_vars = $obj->fill_query_vars( $user_args );
			}
		}
	}
}

add_action( 'pre_get_users', 'wpmu_coursepress_get_certificate_by_date' );