| @@ -16,16 +16,8 @@ | ||
| 16 | 16 | $this->get( $this->endpoint, [ $this, 'get_categories' ] ); |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | public function get_categories() { |
| 20 | - /** | |
| 21 | - * Return if there is any cache data. | |
| 22 | - */ | |
| 23 | - $types = Database::get_transient( $this->endpoint ); | |
| 24 | - if( ! empty( $types ) ){ | |
| 25 | - return $this->success( $types ); | |
| 26 | - } | |
| 27 | - | |
| 28 | 20 | /** @noinspection SpellCheckingInspection */ |
| 29 | 21 | $id = $this->get_param( 'id', 0, 'intval' ); |
| 30 | 22 | $funcArgs = []; |
| 31 | 23 | |
| @@ -32,15 +24,26 @@ | ||
| 32 | 24 | if ( $id > 0 ) { |
| 33 | 25 | $funcArgs['id'] = $id; |
| 34 | 26 | } |
| 35 | 27 | |
| 36 | - $response = $this->http()->query( $this->endpoint, 'id, name, slug, status', $funcArgs )->post(); | |
| 28 | + $fields = 'id, name, slug, status, packs_count'; | |
| 29 | + $transient_key = $this->endpoint . '_' . md5( $fields . json_encode( $funcArgs ) ); | |
| 30 | + | |
| 37 | 31 | /** |
| 32 | + * Return if there is any cache data. | |
| 33 | + */ | |
| 34 | + $types = Database::get_transient( $transient_key ); | |
| 35 | + if( ! empty( $types ) ){ | |
| 36 | + return $this->success( $types ); | |
| 37 | + } | |
| 38 | + | |
| 39 | + $response = $this->http()->query( $this->endpoint, $fields, $funcArgs )->post(); | |
| 40 | + /** | |
| 38 | 41 | * Caching the response in transient. |
| 39 | 42 | */ |
| 40 | 43 | if( ! is_wp_error( $response ) ) { |
| 41 | - Database::set_transient( $this->endpoint, $response ); | |
| 44 | + Database::set_transient( $transient_key, $response ); | |
| 42 | 45 | } |
| 43 | 46 | |
| 44 | 47 | return $response; |
| 45 | 48 | } |
| 46 | 49 | } |