Automattic\WooCommerce\Admin\API\Reports

DataStore::add_time_period_sql_params()protectedWC 1.0

Fills WHERE clause of SQL request with date-related constraints.

Метод класса: DataStore{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->add_time_period_sql_params( $query_args, $table_name );
$query_args(массив) (обязательный)
Parameters supplied by the user.
$table_name(строка) (обязательный)
Name of the db table relevant for the date constraint.

Код DataStore::add_time_period_sql_params() WC 8.7.0

protected function add_time_period_sql_params( $query_args, $table_name ) {
	$this->clear_sql_clause( array( 'from', 'where_time', 'where' ) );
	if ( isset( $this->subquery ) ) {
		$this->subquery->clear_sql_clause( 'where_time' );
	}

	if ( isset( $query_args['before'] ) && '' !== $query_args['before'] ) {
		if ( is_a( $query_args['before'], 'WC_DateTime' ) ) {
			$datetime_str = $query_args['before']->date( TimeInterval::$sql_datetime_format );
		} else {
			$datetime_str = $query_args['before']->format( TimeInterval::$sql_datetime_format );
		}
		if ( isset( $this->subquery ) ) {
			$this->subquery->add_sql_clause( 'where_time', "AND {$table_name}.`{$this->date_column_name}` <= '$datetime_str'" );
		} else {
			$this->add_sql_clause( 'where_time', "AND {$table_name}.`{$this->date_column_name}` <= '$datetime_str'" );
		}
	}

	if ( isset( $query_args['after'] ) && '' !== $query_args['after'] ) {
		if ( is_a( $query_args['after'], 'WC_DateTime' ) ) {
			$datetime_str = $query_args['after']->date( TimeInterval::$sql_datetime_format );
		} else {
			$datetime_str = $query_args['after']->format( TimeInterval::$sql_datetime_format );
		}
		if ( isset( $this->subquery ) ) {
			$this->subquery->add_sql_clause( 'where_time', "AND {$table_name}.`{$this->date_column_name}` >= '$datetime_str'" );
		} else {
			$this->add_sql_clause( 'where_time', "AND {$table_name}.`{$this->date_column_name}` >= '$datetime_str'" );
		}
	}
}