WC_API_Webhooks::query_webhooks()privateWC 2.2

Helper method to get webhook post objects

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

Хуков нет.

Возвращает

Массив.

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

// private - только в коде основоного (родительского) класса
$result = $this->query_webhooks( $args );
$args(массив) (обязательный)
Request arguments for filtering query.

Список изменений

С версии 2.2 Введена.

Код WC_API_Webhooks::query_webhooks() WC 8.7.0

private function query_webhooks( $args ) {
	$args = $this->merge_query_args( array(), $args );

	$args['limit'] = isset( $args['posts_per_page'] ) ? intval( $args['posts_per_page'] ) : intval( get_option( 'posts_per_page' ) );

	if ( empty( $args['offset'] ) ) {
		$args['offset'] = 1 < $args['paged'] ? ( $args['paged'] - 1 ) * $args['limit'] : 0;
	}

	$page = $args['paged'];
	unset( $args['paged'], $args['posts_per_page'] );

	if ( isset( $args['s'] ) ) {
		$args['search'] = $args['s'];
		unset( $args['s'] );
	}

	// Post type to webhook status.
	if ( ! empty( $args['post_status'] ) ) {
		$args['status'] = $args['post_status'];
		unset( $args['post_status'] );
	}

	if ( ! empty( $args['post__in'] ) ) {
		$args['include'] = $args['post__in'];
		unset( $args['post__in'] );
	}

	if ( ! empty( $args['date_query'] ) ) {
		foreach ( $args['date_query'] as $date_query ) {
			if ( 'post_date_gmt' === $date_query['column'] ) {
				$args['after']  = isset( $date_query['after'] ) ? $date_query['after'] : null;
				$args['before'] = isset( $date_query['before'] ) ? $date_query['before'] : null;
			} elseif ( 'post_modified_gmt' === $date_query['column'] ) {
				$args['modified_after']  = isset( $date_query['after'] ) ? $date_query['after'] : null;
				$args['modified_before'] = isset( $date_query['before'] ) ? $date_query['before'] : null;
			}
		}

		unset( $args['date_query'] );
	}

	$args['paginate'] = true;

	// Get the webhooks.
	$data_store = WC_Data_Store::load( 'webhook' );
	$results    = $data_store->search_webhooks( $args );

	// Get total items.
	$headers              = new stdClass;
	$headers->page        = $page;
	$headers->total       = $results->total;
	$headers->is_single   = $args['limit'] > $headers->total;
	$headers->total_pages = $results->max_num_pages;

	return array(
		'results' => $results->webhooks,
		'headers' => $headers,
	);
}