Skip to content

Function

Activate an extension license.

tml_activate_extension_license( string|Theme_My_Login_Extension $extension )

Parameters

$extension string|Theme_My_Login_Extension
The extension name or object.

Return

bool|string|WP_Error The license status on success, false if the extension doesn't exist or WP_Error on failure.

Source

function tml_activate_extension_license( $extension ) {
    $extension = tml_get_extension( $extension );
    if ( ! $extension ) {
        return false;
    }

    $response = tml_extension_api_call(
        $extension->get_store_url(),
        array(
            'edd_action' => 'activate_license',
            'license'    => $extension->get_license_key(),
            'item_id'    => $extension->get_item_id(),
        )
    );

    if ( empty( $response ) ) {
        return new WP_Error( 'http_error', __( 'An error occurred, please try again.', 'theme-my-login' ) );
    }

    if ( false === $response->success ) {
        switch ( $response->error ) {
            case 'expired':
                $message = sprintf(
                    /* translators: %s: License expiration date. */
                    __( 'Your license key expired on %s.', 'theme-my-login' ),
                    date_i18n( get_option( 'date_format' ), strtotime( $response->expires, time() ) )
                );
                break;

            case 'disabled':
                $message = __( 'Your license key has been disabled.', 'theme-my-login' );
                break;

            case 'missing':
            case 'missing_url':
            case 'key_mismatch':
            case 'invalid_item_id':
            case 'item_name_mismatch':
                $message = __( 'Invalid license.', 'theme-my-login' );
                break;

            case 'no_activations_left':
                $message = __( 'Your license key has reached its activation limit.', 'theme-my-login' );
                break;

            case 'license_not_activable':
                $message = __( 'You are attempting to activate a bundle license. Please use the license that corresponds to the individual extension you are attemtping to activate.', 'theme-my-login' );
                break;

            default:
                $message = __( 'An error occurred, please try again.', 'theme-my-login' );
                break;
        }
        return new WP_Error( $response->error, $message );
    }

    return $response->license;
}

Uses

Used by

Changelog

VersionDescription
7.0 Introduced.