api->server->path) return new WP_User(0); try { $user = $this->perform_authentication(); } catch (Exception $e) { $user = new WP_Error('aftership_api_authentication_error', $e->getMessage(), array('status' => $e->getCode())); } return $user; } private function perform_authentication() { //$params = getAfterShipInstance()->api->server->params['GET']; $headers = getallheaders(); // get aftership wp key if (!empty($headers['AFTERSHIP_WP_KEY'])) { $api_key = $headers['AFTERSHIP_WP_KEY']; } else { throw new Exception(__('AfterShip\'s WordPress Key is missing', 'aftership'), 404); } $user = $this->get_user_by_api_key($api_key); return $user; } /** * Return the user for the given consumer key * * @since 2.1 * @param string $consumer_key * @return WP_User * @throws Exception */ private function get_user_by_api_key($api_key) { $user_query = new WP_User_Query( array( //'meta_key' => 'woocommerce_api_consumer_key', 'meta_key' => 'aftership_wp_api_key', 'meta_value' => $api_key, ) ); $users = $user_query->get_results(); if (empty($users[0])) throw new Exception(__('AfterShip\'s WordPress API Key is invalid', 'aftership'), 401); return $users[0]; } }