WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

wc_get_order_notes() WC 3.2.0

Get order notes.

Хуков нет.

Возвращает

stdClass[]. Array of stdClass objects with order notes details.

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

wc_get_order_notes( $args );
$args(массив) (обязательный)

Query arguments {

Array of query parameters.
@type string `$limit`         Maximum number of notes to retrieve.
							Default empty (no limit).
@type int    `$order_id`      Limit results to those affiliated with a given order ID.
							Default 0.
@type array  `$order__in`     Array of order IDs to include affiliated notes for.
							Default empty.
@type array  `$order__not_in` Array of order IDs to exclude affiliated notes for.
							Default empty.
@type string `$orderby`       Define how should sort notes.
							Accepts `'date_created'`, `'date_created_gmt'` or `'id'`.
							Default: `'id'`.
@type string `$order`         How to order retrieved notes.
							Accepts `'ASC'` or `'DESC'`.
							Default: `'DESC'`.
@type string `$type`          Define what type of note should retrieve.
							Accepts `'customer'`, `'internal'` or empty for both.
							Default empty.

}

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

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

Код wc_get_order_notes() WC 4.6.0

<?php
function wc_get_order_notes( $args ) {
	$key_mapping = array(
		'limit'         => 'number',
		'order_id'      => 'post_id',
		'order__in'     => 'post__in',
		'order__not_in' => 'post__not_in',
	);

	foreach ( $key_mapping as $query_key => $db_key ) {
		if ( isset( $args[ $query_key ] ) ) {
			$args[ $db_key ] = $args[ $query_key ];
			unset( $args[ $query_key ] );
		}
	}

	// Define orderby.
	$orderby_mapping = array(
		'date_created'     => 'comment_date',
		'date_created_gmt' => 'comment_date_gmt',
		'id'               => 'comment_ID',
	);

	$args['orderby'] = ! empty( $args['orderby'] ) && in_array( $args['orderby'], array( 'date_created', 'date_created_gmt', 'id' ), true ) ? $orderby_mapping[ $args['orderby'] ] : 'comment_ID';

	// Set WooCommerce order type.
	if ( isset( $args['type'] ) && 'customer' === $args['type'] ) {
		$args['meta_query'] = array( // WPCS: slow query ok.
			array(
				'key'     => 'is_customer_note',
				'value'   => 1,
				'compare' => '=',
			),
		);
	} elseif ( isset( $args['type'] ) && 'internal' === $args['type'] ) {
		$args['meta_query'] = array( // WPCS: slow query ok.
			array(
				'key'     => 'is_customer_note',
				'compare' => 'NOT EXISTS',
			),
		);
	}

	// Set correct comment type.
	$args['type'] = 'order_note';

	// Always approved.
	$args['status'] = 'approve';

	// Does not support 'count' or 'fields'.
	unset( $args['count'], $args['fields'] );

	remove_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10, 1 );

	$notes = get_comments( $args );

	add_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10, 1 );

	return array_filter( array_map( 'wc_get_order_note', $notes ) );
}