Automattic\WooCommerce\Internal\DataStores
CustomMetaDataStore::get_metadata_by_key
Retrieves metadata by meta key.
Метод класса: CustomMetaDataStore{}
Хуков нет.
Возвращает
\stdClass[]|false. Metadata object or FALSE if not found.
Использование
$CustomMetaDataStore = new CustomMetaDataStore(); $CustomMetaDataStore->get_metadata_by_key( $object, $meta_key );
- $object(WC_Data) (обязательный) (передается по ссылке — &)
- Object ID.
- $meta_key(строка) (обязательный)
- Meta key.
Код CustomMetaDataStore::get_metadata_by_key() CustomMetaDataStore::get metadata by key WC 10.8.1
public function get_metadata_by_key( &$object, string $meta_key ) {
global $wpdb;
if ( ! $object->get_id() ) {
return false;
}
$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;
}