Automattic\WooCommerce\Internal\DataStores

CustomMetaDataStore::get_meta_keys()privateWC 8.8.0

Returns distinct meta keys in use.

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

Хуков нет.

Возвращает

Строку[].

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

// private - только в коде основоного (родительского) класса
$result = $this->get_meta_keys( $limit, $order, $include_ );
$limit(int)
Maximum number of meta keys to return.
По умолчанию: 100
$order(строка)
Order to use for the results. Either 'ASC' or 'DESC'.
По умолчанию: 'ASC'
$include_ **
-
По умолчанию: false

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

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

Код CustomMetaDataStore::get_meta_keys() WC 9.7.1

public function get_meta_keys( $limit = 100, $order = 'ASC', $include_private = false ) {
	global $wpdb;

	$db_info = $this->get_db_info();

	$query = "SELECT DISTINCT meta_key FROM {$db_info['table']} ";

	if ( ! $include_private ) {
		$query .= $wpdb->prepare( "WHERE meta_key !='' AND meta_key NOT BETWEEN '_' AND '_z' AND meta_key NOT LIKE %s ", $wpdb->esc_like( '_' ) . '%' );
	} else {
		$query .= "WHERE meta_key != '' ";
	}

	$order  = in_array( strtoupper( $order ), array( 'ASC', 'DESC' ), true ) ? $order : 'ASC';
	$query .= 'ORDER BY meta_key ' . $order . ' ';

	if ( $limit ) {
		$query .= $wpdb->prepare( 'LIMIT %d ', $limit );
	}

	return $wpdb->get_col( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $query is prepared.
}