Function
Get the extensions feed.
tml_admin_get_extensions_feed( array $args = array() )
Parameters
-
$argsarray Defaultarray() - Optional. An array of arguments for fetching extensions from the server.
Return
array|WP_Error
The extensions array or WP_Error on failure.
Source
function tml_admin_get_extensions_feed( $args = array() ) {
$args = wp_parse_args(
$args,
array(
'number' => 12,
)
);
$transient_key = 'tml_extensions_feed-' . md5( http_build_query( $args ) );
$feed = get_site_transient( $transient_key );
if ( false === $feed ) {
$url = add_query_arg( $args, THEME_MY_LOGIN_EXTENSIONS_API_URL );
$response = wp_remote_get(
$url,
array(
'timeout' => 30,
)
);
if ( is_wp_error( $response ) ) {
return $response;
}
$code = wp_remote_retrieve_response_code( $response );
$message = wp_remote_retrieve_response_message( $response );
if ( 200 !== (int) $code ) {
return new WP_Error( 'http_error_' . $code, $message );
}
$response = json_decode( wp_remote_retrieve_body( $response ) );
if ( ! is_object( $response ) || ! isset( $response->products ) || ! is_array( $response->products ) ) {
// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- reusing WP core's translated string verbatim (see wp-includes/widgets.php), not a TML-specific string.
return new WP_Error( 'invalid_response', __( 'An error has occurred, which probably means the feed is down. Try again later.' ) );
}
$feed = $response->products;
set_site_transient( $transient_key, $feed, DAY_IN_SECONDS / 2 );
set_site_transient( 'tml_promotion', isset( $response->promotion ) && is_object( $response->promotion ) ? (array) $response->promotion : array(), DAY_IN_SECONDS / 2 );
}
return $feed;
}
Uses
Used by
Changelog
| Version | Description |
|---|---|
| 7.0 | Introduced. |