WC_API_Resource::maybe_add_meta() public WC 2.1
Add meta to resources when requested by the client. Meta is added as a top-level <resource_name>_meta attribute (e.g. order_meta) as a list of key/value pairs
{} Это метод класса: WC_API_Resource{}
Хуков нет.
Возвращает
Разное.
Использование
$WC_API_Resource = new WC_API_Resource(); $WC_API_Resource->maybe_add_meta( $data, $resource );
- $data(массив) (обязательный)
- the resource data
- $resource(объект) (обязательный)
- the resource object (e.g WC_Order)
Список изменений
С версии 2.1 | Введена. |
Код WC_API_Resource::maybe_add_meta() WC API Resource::maybe add meta WC 5.0.0
public function maybe_add_meta( $data, $resource ) {
if ( isset( $this->server->params['GET']['filter']['meta'] ) && 'true' === $this->server->params['GET']['filter']['meta'] && is_object( $resource ) ) {
// don't attempt to add meta more than once
if ( preg_grep( '/[a-z]+_meta/', array_keys( $data ) ) ) {
return $data;
}
// define the top-level property name for the meta
switch ( get_class( $resource ) ) {
case 'WC_Order':
$meta_name = 'order_meta';
break;
case 'WC_Coupon':
$meta_name = 'coupon_meta';
break;
case 'WP_User':
$meta_name = 'customer_meta';
break;
default:
$meta_name = 'product_meta';
break;
}
if ( is_a( $resource, 'WP_User' ) ) {
// customer meta
$meta = (array) get_user_meta( $resource->ID );
} else {
// coupon/order/product meta
$meta = (array) get_post_meta( $resource->get_id() );
}
foreach ( $meta as $meta_key => $meta_value ) {
// don't add hidden meta by default
if ( ! is_protected_meta( $meta_key ) ) {
$data[ $meta_name ][ $meta_key ] = maybe_unserialize( $meta_value[0] );
}
}
}
return $data;
}