Automattic\WooCommerce\Internal\DataStores

CustomMetaDataStore::get_metadata_by_key()publicWC 1.0

Retrieves metadata by meta key.

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

Хуков нет.

Возвращает

\stdClass|true|false. Metadata object or FALSE if not found.

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

$CustomMetaDataStore = new CustomMetaDataStore();
$CustomMetaDataStore->get_metadata_by_key( $object, $meta_key );
$object(\WC_Abstract_Order) (обязательный) (передается по ссылке — &)
Object ID.
$meta_key(строка) (обязательный)
Meta key.

Код CustomMetaDataStore::get_metadata_by_key() WC 9.7.1

public function get_metadata_by_key( &$object, string $meta_key ) {
	global $wpdb;

	$db_info = $this->get_db_info();

	// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
	$meta = $wpdb->get_results(
		$wpdb->prepare(
			"SELECT {$db_info['meta_id_field']}, meta_key, meta_value, {$db_info['object_id_field']} FROM {$db_info['table']} WHERE meta_key = %s AND {$db_info['object_id_field']} = %d",
			$meta_key,
			$object->get_id(),
		)
	);
	// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared

	if ( empty( $meta ) ) {
		return false;
	}

	foreach ( $meta as $row ) {
		if ( isset( $row->meta_value ) ) {
			$row->meta_value = maybe_unserialize( $row->meta_value );
		}
	}

	return $meta;
}