Skip to content

Function

Add extensions hosted using EDD to the WP plugins transient.

tml_add_extension_data_to_plugins_transient( object $transient = '' )

Parameters

$transient object Default ''
The transient data.

Return

object The transient data.

Source

function tml_add_extension_data_to_plugins_transient( $transient = '' ) {
    if ( ! is_object( $transient ) ) {
        $transient = (object) array();
    }

    foreach ( tml_get_extensions() as $extension ) {
        $response = tml_extension_api_call(
            $extension->get_store_url(),
            array(
                'license' => $extension->get_license_key(),
                'item_id' => $extension->get_item_id(),
                'slug'    => $extension->get_name(),
                'url'     => home_url(),
            )
        );

        if ( is_object( $response ) ) {
            $basename = $extension->get_basename();

            $update = (object) array(
                'slug'             => $extension->get_name(),
                'plugin'           => $basename,
                'new_version'      => isset( $response->new_version ) ? $response->new_version : ( isset( $response->version ) ? $response->version : '' ),
                'url'              => isset( $response->url ) ? $response->url : ( isset( $response->homepage ) ? $response->homepage : '' ),
                'package'          => isset( $response->package ) ? $response->package : ( isset( $response->download_link ) ? $response->download_link : '' ),
                'icons'            => isset( $response->icons ) ? $response->icons : array(),
                'banners'          => isset( $response->banners ) ? $response->banners : array(),
                'banners_rtl'      => isset( $response->banners_rtl ) ? $response->banners_rtl : array(),
                'requires'         => isset( $response->requires ) ? $response->requires : '',
                'tested'           => isset( $response->tested ) ? $response->tested : '',
                'requires_php'     => isset( $response->requires_php ) ? $response->requires_php : '',
                'requires_plugins' => isset( $response->requires_plugins ) ? $response->requires_plugins : array(),
            );

            if ( ! empty( $response->upgrade_notice ) ) {
                $update->upgrade_notice = $response->upgrade_notice;
            }

            $requires_tml = isset( $response->requires_tml ) ? (string) $response->requires_tml : '';

            // This is a valid update
            if (
                ! empty( $update->new_version )
                && version_compare( $extension->get_version(), $update->new_version, '<' )
                && ( '' === $requires_tml || version_compare( THEME_MY_LOGIN_VERSION, $requires_tml, '>=' ) )
            ) {
                $transient->response[ $basename ] = $update;
            } else {
                $transient->no_update[ $basename ] = $update;
            }

            $transient->last_checked = time();
        }
    }

    return $transient;
}

Uses

Changelog

VersionDescription
7.0 Introduced.