: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
$return[] = "SECOND( $column ) $compare $value";
return implode( ' AND ', $return );
// Cases where just one unit is set.
if ( isset( $hour ) && ! isset( $minute ) && ! isset( $second ) ) {
$value = $this->build_value( $compare, $hour );
if ( false !== $value ) {
return "HOUR( $column ) $compare $value";
} elseif ( ! isset( $hour ) && isset( $minute ) && ! isset( $second ) ) {
$value = $this->build_value( $compare, $minute );
if ( false !== $value ) {
return "MINUTE( $column ) $compare $value";
} elseif ( ! isset( $hour ) && ! isset( $minute ) && isset( $second ) ) {
$value = $this->build_value( $compare, $second );
if ( false !== $value ) {
return "SECOND( $column ) $compare $value";
// Single units were already handled. Since hour & second isn't allowed, minute must to be set.
if ( ! isset( $minute ) ) {
$time .= sprintf( '%02d', $hour ) . '.';
$time .= sprintf( '%02d', $minute );
if ( isset( $second ) ) {
$time .= sprintf( '%02d', $second );
return $wpdb->prepare( "DATE_FORMAT( $column, %s ) $compare %f", $format, $time );
* Sanitizes a 'relation' operator.
* @param string $relation Raw relation key from the query argument.
* @return string Sanitized relation. Either 'AND' or 'OR'.
public function sanitize_relation( $relation ) {
if ( 'OR' === strtoupper( $relation ) ) {