/home/desid573/verdenaturopathy.com.au/wp-content/plugins/meta-box/inc/update
Edit: /home/desid573/verdenaturopathy.com.au/wp-content/plugins/meta-box/inc/update/notification.php (6874B)
checker = $checker;
$this->option = $option;
$this->settings_page = $option->is_network_activated() ? network_admin_url( 'settings.php?page=meta-box-updater' ) : admin_url( 'admin.php?page=meta-box-updater' );
}
/**
* Add hooks to show admin notice.
*/
public function init() {
if ( ! $this->checker->has_extensions() ) {
return;
}
// Show update message on Plugins page.
$extensions = $this->checker->get_extensions();
foreach ( $extensions as $extension ) {
$file = "{$extension}/{$extension}.php";
add_action( "in_plugin_update_message-$file", array( $this, 'show_update_message' ), 10, 2 );
add_filter( "plugin_action_links_$file", array( $this, 'plugin_links' ), 20 );
}
// Show global update notification.
if ( $this->is_dismissed() ) {
return;
}
$admin_notices_hook = $this->option->is_network_activated() ? 'network_admin_notices' : 'admin_notices';
add_action( $admin_notices_hook, array( $this, 'notify' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
add_action( 'wp_ajax_mb_dismiss_notification', array( $this, 'dismiss' ) );
}
/**
* Enqueue the notification script.
*/
public function enqueue() {
wp_enqueue_script( 'mb-notification', RWMB_JS_URL . 'notification.js', array( 'jquery' ), RWMB_VER, true );
wp_localize_script( 'mb-notification', 'MBNotification', array( 'nonce' => wp_create_nonce( 'dismiss' ) ) );
}
/**
* Dismiss the notification permanently via ajax.
*/
public function dismiss() {
check_ajax_referer( 'dismiss', 'nonce' );
$this->option->update(
array(
'notification_dismissed' => 1,
'notification_dismissed_time' => time(),
)
);
wp_send_json_success();
}
/**
* Notify users to enter license key.
*/
public function notify() {
// Do not show notification on License page.
$screen = get_current_screen();
if ( in_array( $screen->id, array( 'meta-box_page_meta-box-updater', 'settings_page_meta-box-updater-network' ), true ) ) {
return;
}
$messages = array(
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'no_key' => __( 'You have not set your Meta Box license key yet, which means you are missing out on automatic updates and support! Please
enter your license key or
get a new one here.', 'meta-box' ),
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'invalid' => __( 'Your license key for Meta Box is
invalid. Please
update your license key or
get a new one to enable automatic updates.', 'meta-box' ),
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'error' => __( 'Your license key for Meta Box is
invalid. Please
update your license key or
get a new one to enable automatic updates.', 'meta-box' ),
// Translators: %3$s - URL to the My Account page.
'expired' => __( 'Your license key for Meta Box is
expired. Please
renew your license to get automatic updates and premium support.', 'meta-box' ),
);
$status = $this->option->get_license_status();
if ( ! isset( $messages[ $status ] ) ) {
return;
}
echo '
';
}
/**
* Show update message on Plugins page.
*
* @param array $plugin_data Plugin data.
* @param object $response Available plugin update data.
*/
public function show_update_message( $plugin_data, $response ) {
// Users have an active license.
if ( ! empty( $response->package ) ) {
return;
}
$messages = array(
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'no_key' => __( 'Please
enter your license key or
get a new one here.', 'meta-box' ),
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'invalid' => __( 'Your license key is
invalid. Please
update your license key or
get a new one here.', 'meta-box' ),
// Translators: %1$s - URL to the settings page, %2$s - URL to the pricing page.
'error' => __( 'Your license key is
invalid. Please
update your license key or
get a new one here.', 'meta-box' ),
// Translators: %3$s - URL to the My Account page.
'expired' => __( 'Your license key is
expired. Please
renew your license.', 'meta-box' ),
);
$status = $this->option->get_license_status();
if ( ! isset( $messages[ $status ] ) ) {
return;
}
echo '
' . wp_kses_post( sprintf( $messages[ $status ], $this->settings_page, 'https://metabox.io/pricing/', 'https://metabox.io/my-account/' ) );
}
/**
* Add link for activate or update the license key.
*
* @param array $links Array of plugin links.
*
* @return array
*/
public function plugin_links( $links ) {
$status = $this->option->get_license_status();
if ( 'active' === $status ) {
return $links;
}
$text = 'no_key' === $status ? __( 'Activate License', 'meta-box' ) : __( 'Update License', 'meta-box' );
$links[] = '
' . esc_html( $text ) . '';
return $links;
}
/**
* Check if the global notification is dismissed.
* Auto re-enable the notification every 2 weeks after it's dissmissed.
*
* @return bool
*/
private function is_dismissed() {
$time = $this->option->get( 'notification_dismissed_time' );
return $this->option->get( 'notification_dismissed' ) && time() - $time < 14 * DAY_IN_SECONDS;
}
}