diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index 7e93f21c..8ea72173 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -576,9 +576,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { } } - - function check_wrong_licenses() { - $invalid_license = 0; + public function check_wrong_licenses() { + $invalid_license = 0; $arr_inactive_license_keys = array(); if ( empty( UM()->admin_settings()->settings_structure['licenses']['fields'] ) ) { @@ -588,10 +587,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { foreach ( UM()->admin_settings()->settings_structure['licenses']['fields'] as $field_data ) { $license = get_option( "{$field_data['id']}_edd_answer" ); - if ( ( is_object( $license ) && 'valid' == $license->license ) || 'valid' == $license ) + if ( ( is_object( $license ) && isset( $license->license ) && 'valid' === $license->license ) || 'valid' === $license ) { continue; + } - if ( ( is_object( $license ) && 'inactive' == $license->license ) || 'inactive' == $license ) { + if ( ( is_object( $license ) && isset( $license->license ) && 'inactive' === $license->license ) || 'inactive' === $license ) { $arr_inactive_license_keys[] = $license->item_name; } @@ -603,7 +603,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { 'license_key', array( 'class' => 'error', - // translators: %1$s is a inactive license number; %2$s is a plugin name; %3$s is a store link. + // translators: %1$s is an inactive license number; %2$s is a plugin name; %3$s is a store link. 'message' => '

' . sprintf( __( 'There are %1$s inactive %2$s license keys for this site. This site is not authorized to get plugin updates. You can active this site on www.ultimatemember.com.', 'ultimate-member' ), count( $arr_inactive_license_keys ), UM_PLUGIN_NAME, UM()->store_url ) . '

', ), 3 @@ -611,12 +611,20 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { } if ( $invalid_license ) { + $licenses_page_url = add_query_arg( + array( + 'page' => 'um_options', + 'tab' => 'licenses', + ), + admin_url( 'admin.php' ) + ); + $this->add_notice( 'license_key', array( 'class' => 'error', - // translators: %1$s is a invalid license; %2$s is a plugin name; %3$s is a license link. - 'message' => '

' . sprintf( __( 'You have %1$s invalid or expired license keys for %2$s. Please go to the Licenses page to correct this issue.', 'ultimate-member' ), $invalid_license, UM_PLUGIN_NAME, add_query_arg( array( 'page' => 'um_options', 'tab' => 'licenses' ), admin_url( 'admin.php' ) ) ) . '

', + // translators: %1$s is an invalid license; %2$s is a plugin name; %3$s is a license link. + 'message' => '

' . sprintf( __( 'You have %1$s invalid or expired license keys for %2$s. Please go to the Licenses page to correct this issue.', 'ultimate-member' ), $invalid_license, UM_PLUGIN_NAME, $licenses_page_url ) . '

', ), 3 ); diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index a9fb1fe7..01d3799f 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -1,6 +1,8 @@ options()->get( $field_data['id'] ); - $value = isset( $option_value ) && ! empty( $option_value ) ? $option_value : ( isset( $field_data['default'] ) ? $field_data['default'] : '' ); + $option_value = UM()->options()->get( $field_data['id'] ); + $default_value = isset( $field_data['default'] ) ? $field_data['default'] : ''; + $value = ! empty( $option_value ) ? $option_value : $default_value; $license = get_option( "{$field_data['id']}_edd_answer" ); if ( is_object( $license ) && ! empty( $value ) ) { - // activate_license 'invalid' on anything other than valid, so if there was an error capture it - if ( empty( $license->success ) ) { + // Activate_license 'invalid' on anything other than valid, so if there was an error capture it + if ( is_wp_error( $license ) ) { + $class = 'error'; + $errors_data = array(); + $error_codes = $license->get_error_codes(); + if ( ! empty( $error_codes ) ) { + foreach ( $error_codes as $error_code ) { + // translators: %1$s is an error code; %2$s is an error message. + $errors_data[] = sprintf( __( 'code: %1$s, message: %2$s;', 'ultimate-member' ), $error_code, $license->get_error_messages( $error_code ) ); + } + } + $errors_data = ! empty( $errors_data ) ? implode( ' ', $errors_data ) : ''; + + // translators: %1$s is an error data; %2$s is a support link. + $messages[] = sprintf( __( 'There was an error with this license key: %1$s. Please contact our support team.', 'ultimate-member' ), $errors_data, 'https://ultimatemember.com/support' ); + + $license_status = 'license-' . $class . '-notice'; + } elseif ( empty( $license->success ) ) { if ( ! empty( $license->error ) ) { switch ( $license->error ) { @@ -3102,7 +3121,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { $messages[] = sprintf( // translators: %1$s is an expiry date; %2$s is a renewal link. __( 'Your license key expired on %1$s. Please renew your license key.', 'ultimate-member' ), - wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new \DateTimeZone( 'UTC' ) ), + wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new DateTimeZone( 'UTC' ) ), 'https://ultimatemember.com/checkout/?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired' ); @@ -3197,7 +3216,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { $messages[] = sprintf( // translators: %1$s is a expiry date; %2$s is a renew link. __( 'Your license key expired on %1$s. Please renew your license key.', 'ultimate-member' ), - wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new \DateTimeZone( 'UTC' ) ), + wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new DateTimeZone( 'UTC' ) ), 'https://ultimatemember.com/checkout/?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired' ); @@ -3273,7 +3292,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { $messages[] = sprintf( // translators: %1$s is an expiry date; %2$s is a renewal link. __( 'Your license key expires soon! It expires on %1$s. Renew your license key.', 'ultimate-member' ), - wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new \DateTimeZone( 'UTC' ) ), + wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new DateTimeZone( 'UTC' ) ), 'https://ultimatemember.com/checkout/?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=renew' ); @@ -3284,7 +3303,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { $messages[] = sprintf( // translators: %s: expiry date. __( 'Your license key expires on %s.', 'ultimate-member' ), - wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new \DateTimeZone( 'UTC' ) ) + wp_date( get_option( 'date_format', 'F j, Y' ), strtotime( $license->expires ), new DateTimeZone( 'UTC' ) ) ); $license_status = 'license-expiration-date-notice'; @@ -3323,7 +3342,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { license ) || 'valid' === $license ) ) { + if ( ! empty( $value ) && ( ( is_object( $license ) && isset( $license->license ) && 'valid' === $license->license ) || 'valid' === $license ) ) { ?>