Skip to content

Function

Render an extension license key field.

tml_admin_setting_callback_license_key_field( array $args )

Parameters

$args array
Optional. An array of arguments.
$label_for string
The key field name/ID.
$extension string|Theme_My_Login_Extention
The extension name or object.

Source

function tml_admin_setting_callback_license_key_field( $args ) {
    $args = wp_parse_args(
        $args,
        array(
            'label_for' => '',
            'extension' => '',
        )
    );

    $extension = tml_get_extension( $args['extension'] );
    if ( ! $extension ) {
        return;
    }

    $license = $extension->get_license_key();
    $status  = $extension->get_license_status();

    if ( 'valid' === $status ) {
        $class = 'tml-license-valid';
        $text  = __( 'Active', 'theme-my-login' );
    } elseif ( 'invalid' === $status ) {
        $class = 'tml-license-invalid';
        $text  = __( 'Invalid', 'theme-my-login' );
    } else {
        $class = 'tml-license-inactive';
        $text  = __( 'Inactive', 'theme-my-login' );
    }

    echo sprintf(
        '<input type="text" name="%1$s" id="%1$s" value="%2$s" class="regular-text code tml-license-field %3$s" maxlength="32" %4$s />',
        esc_attr( $args['label_for'] ),
        esc_attr( $license ),
        esc_attr( $class ),
        'valid' === $status ? 'readonly="readonly"' : ''
    ) . "\n";

    submit_button(
        __( 'Deactivate', 'theme-my-login' ),
        'secondary tml-license-button',
        'tml_deactivate_license[' . $extension->get_name() . ']',
        false,
        array(
            'data-action'    => 'deactivate',
            'data-extension' => $extension->get_name(),
            'style'          => ( empty( $license ) || 'valid' !== $status ) ? 'display: none;' : '',
        )
    );

    submit_button(
        __( 'Activate', 'theme-my-login' ),
        'secondary tml-license-button',
        'tml_activate_license[' . $extension->get_name() . ']',
        false,
        array(
            'data-action'    => 'activate',
            'data-extension' => $extension->get_name(),
            'style'          => ( empty( $license ) || 'valid' === $status ) ? 'display: none;' : '',
        )
    );

    echo '<div class="spinner"></div>';

    printf(
        '<p class="tml-license-status %1$s" style="%3$s">%2$s</p>',
        esc_attr( $class ),
        esc_html( $text ),
        empty( $license ) ? 'display: none;' : ''
    );
}

Uses

Changelog

VersionDescription
7.0 Introduced.