LLMS_Helper_Keys::check_keys( bool $force = false )
Check all saved keys to ensure they’re still active
Description Description
Outputs warnings if the key has expired or the status has changed remotely.
Runs on daily cron (llms_check_license_keys).
Only make api calls to check once / week.
Parameters Parameters
- $force
-
(bool) (Optional) Ignore the once/week setting and force a check.
Default value: false
Return Return
(void)
Source Source
File: libraries/lifterlms-helper/includes/class-llms-helper-keys.php
}
/**
* Check all saved keys to ensure they're still active
*
* Outputs warnings if the key has expired or the status has changed remotely.
*
* Runs on daily cron (`llms_check_license_keys`).
*
* Only make api calls to check once / week.
*
* @since 3.0.0
* @since 3.4.0 Use core textdomain.
*
* @param bool $force Ignore the once/week setting and force a check.
* @return void
*/
public static function check_keys( $force = false ) {
// Don't trigger during AJAX Requests.
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
}
// Don't proceed if we don't have any keys to check.
$keys = llms_helper_options()->get_license_keys();
if ( ! $keys ) {
return;
}
if ( ! $force ) {
// Only check keys once a week.
$last_send = llms_helper_options()->get_last_keys_cron_check();
if ( $last_send > apply_filters( 'llms_check_license_keys_interval', strtotime( '-1 week' ) ) ) {
return;
}
}
// Record check time.
llms_helper_options()->set_last_keys_cron_check( time() );
$data = array(
'keys' => array(),
'url' => get_site_url(),
);
foreach ( $keys as $key ) {
$data['keys'][ $key['license_key'] ] = $key['update_key'];
}
$req = new LLMS_Dot_Com_API( '/license/status', $data );
if ( ! $req->is_error() ) {
$res = $req->get_result();
include_once LLMS_PLUGIN_DIR . 'includes/admin/class.llms.admin.notices.php';
/* Translators: %s = License Key */
$msg = __( 'The license "%s" is no longer valid and was deactivated. Please visit your account dashboard at https://lifterlms.com/my-account for more information.', 'lifterlms' );
// Output error responses.
if ( isset( $res['data']['errors'] ) ) {
foreach ( array_keys( $res['data']['errors'] ) as $key ) {
self::remove_license_key( $key );
LLMS_Admin_Notices::add_notice(
'key_check_' . sanitize_text_field( $key ),
make_clickable( sprintf( $msg, $key ) ),
array(
'type' => 'error',
'dismiss_for_days' => 0,
)
);
}
}
// Check status of keys, if the status has changed remove it locally.
if ( isset( $res['data']['keys'] ) ) {
foreach ( $res['data']['keys'] as $key => $data ) {
if ( $data['status'] ) {
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 3.4.0 | Use core textdomain. |
| 3.0.0 | Introduced. |