WP_REST_Server::READABLE, 'callback' => array(__CLASS__, 'get_customer_commercial_leads'), 'permission_callback' => 'is_user_logged_in' ) ); } // TODO: Handle this when assigment of customer to commercial lead is done public static function get_customer_commercial_leads() { $commercial_leads = array(); foreach (wiaas_get_commercial_leads() as $id => $name) { $commercial_leads[] = array( 'id' => $id, 'name' => $name ); } return rest_ensure_response($commercial_leads); } /** * Filter woocommerce REST API query so only valid wiaas packages are returned to the customer * * @param $args * @param $request * * @return mixed */ public static function filter_packages($args, $request) { if ( empty($query['tax_query']) ){ $query['tax_query'] = array(); } // Moved package status handling here $query['tax_query'][] = array( 'taxonomy' => 'package_status', 'field' => 'name', 'terms' => Wiaas_Package_Status::AVAILABLE ); $commercial_lead_id = absint($request['cl_id']); $customer_id = wiaas_get_current_user_organization_id(); $pay_types = array_keys(Wiaas_Package_Pricing::get_available_pay_types()); $price_serch_terms = array(); foreach ($pay_types as $pay_type) { $price_serch_terms[] = '_' . $commercial_lead_id . '_' . $pay_type . '_default'; $price_serch_terms[] = '_' . $commercial_lead_id . '_' . $pay_type . '_customer_' . $customer_id; } $args['tax_query'][] = array( 'taxonomy' => '_wiaas_shop_prices', 'terms' => $price_serch_terms, 'field' => 'slug' ); return $args; } } Wiaas_Package_API::init();