set_arguments( $args ); $this->set_endpoint( '/checkout/' . $args['postcode'] . '/availableServices' ); $this->set_query_string(); return $this->get_request(); } protected function set_arguments( $args ) { // Validate set args if ( empty( $args['account_num'] ) ) { throw new Exception( __('Please, provide an account in the DHL shipping settings', 'pr-shipping-dhl' ) ); } if ( empty( $args['postcode'] ) ) { throw new Exception( __('Please, provide the receiver postnumber.', 'pr-shipping-dhl' ) ); } if ( empty( $args['start_date'] ) ) { throw new Exception( __('Please, provide the shipment start date.', 'pr-shipping-dhl' ) ); } $this->args = $args; } protected function set_query_string() { // 2018-08-17 $dhl_label_query_string = array( 'startDate' => $this->args['start_date'] ); $this->query_string = http_build_query($dhl_label_query_string); } protected function set_header( $authorization = '' ) { $dhl_header['Accept'] = 'application/json'; $dhl_header['X-EKP'] = $this->args['account_num']; if ( !empty( $authorization ) ) { $dhl_header['Authorization'] = $authorization; } $this->remote_header = $dhl_header; } }