/subscriptions * * @since 2.0 * @param array $routes * @return array */ public function register_routes( $routes ) { # GET /customers//subscriptions $routes[ $this->base . '/(?P\d+)/subscriptions' ] = array( array( array( $this, 'get_customer_subscriptions' ), WC_API_SERVER::READABLE ), ); return $routes; } /** * WCS API function to get all the subscriptions tied to a particular customer. * * @since 2.0 * @param $id int * @param $fields array */ public function get_customer_subscriptions( $id, $fields = null, $filter = array() ) { global $wpdb; // check the customer id given is a valid customer in the store. We're able to leech off WC-API for this. $id = $this->validate_request( $id, 'customer', 'read' ); if ( is_wp_error( $id ) ) { return $id; } $subscription_ids = array(); $filter['customer_id'] = $id; $subscriptions = WC()->api->WC_API_Subscriptions->get_subscriptions( $fields, $filter, null, -1 ); if ( ! empty( $subscriptions['subscriptions'] ) && is_array( $subscriptions['subscriptions'] ) ) { foreach ( $subscriptions['subscriptions'] as $subscription ) { $subscription_ids[] = $subscription['id']; } } return array( 'customer_subscriptions' => apply_filters( 'wc_subscriptions_api_customer_subscriptions', $subscriptions, $id, $fields, $subscription_ids, $this->server ) ); } }