/**
  * Outputs the admin notices generated by the plugin
  *
  * @uses GVCommon::has_cap()
  * @since 1.12
  *
  * @return void
  */
 public function admin_notice()
 {
     /**
      * @filter `gravityview/admin/notices` Modify the notices displayed in the admin
      * @since 1.12
      */
     $notices = apply_filters('gravityview/admin/notices', self::$admin_notices);
     if (empty($notices) || !$this->check_show_multisite_notices()) {
         return;
     }
     //don't display a message if use has dismissed the message for this version
     // TODO: Use get_user_meta instead of get_transient
     self::$dismissed_notices = isset($_GET['show-dismissed-notices']) ? array() : (array) get_transient('gravityview_dismissed_notices');
     $output = '';
     foreach ($notices as $notice) {
         // If the user doesn't have the capability to see the warning
         if (isset($notice['cap']) && false === GVCommon::has_cap($notice['cap'])) {
             do_action('gravityview_log_debug', 'Notice not shown because user does not have the capability to view it.', $notice);
             continue;
         }
         if (true === $this->is_notice_dismissed($notice)) {
             do_action('gravityview_log_debug', 'Notice not shown because the notice has already been dismissed.', $notice);
             continue;
         }
         $output .= '<div id="message" style="position:relative" class="notice ' . gravityview_sanitize_html_class($notice['class']) . '">';
         // Too cute to leave out.
         $output .= gravityview_get_floaty();
         if (!empty($notice['title'])) {
             $output .= '<h3>' . esc_html($notice['title']) . '</h3>';
         }
         $message = isset($notice['message']) ? $notice['message'] : '';
         if (!empty($notice['dismiss'])) {
             $dismiss = esc_attr($notice['dismiss']);
             $url = esc_url(add_query_arg(array('gv-dismiss' => wp_create_nonce('dismiss'), 'notice' => $dismiss)));
             $align = is_rtl() ? 'alignleft' : 'alignright';
             $message .= '<a href="' . $url . '" data-notice="' . $dismiss . '" class="' . $align . ' button button-link">' . esc_html__('Dismiss', 'gravityview') . '</a></p>';
         }
         $output .= wpautop($message);
         $output .= '<div class="clear"></div>';
         $output .= '</div>';
     }
     echo $output;
     unset($output, $align, $message, $notices);
     //reset the notices handler
     self::$admin_notices = array();
 }
 /**
  * Outputs the admin notices generated by the plugin
  *
  * @since 1.12
  *
  * @return void
  */
 public function admin_notice()
 {
     /**
      * Modify the notices displayed
      * @since 1.12
      */
     $notices = apply_filters('gravityview/admin/notices', self::$admin_notices);
     if (empty($notices) || !$this->check_show_multisite_notices()) {
         return;
     }
     //don't display a message if use has dismissed the message for this version
     self::$dismissed_notices = isset($_GET['show-dismissed-notices']) ? array() : (array) get_transient('gravityview_dismissed_notices');
     foreach ($notices as $notice) {
         if (false === $this->_maybe_show_notice($notice)) {
             continue;
         }
         echo '<div id="message" class="notice ' . gravityview_sanitize_html_class($notice['class']) . '">';
         // Too cute to leave out.
         echo gravityview_get_floaty();
         if (!empty($notice['title'])) {
             echo '<h3>' . esc_html($notice['title']) . '</h3>';
         }
         echo wpautop($notice['message']);
         if (!empty($notice['dismiss'])) {
             $dismiss = esc_attr($notice['dismiss']);
             $url = esc_url(add_query_arg(array('gv-dismiss' => wp_create_nonce('dismiss'), 'notice' => $dismiss)));
             echo wpautop('<a href="' . $url . '" data-notice="' . $dismiss . '" class="button-small button button-secondary">' . esc_html__('Dismiss', 'gravityview') . '</a>');
         }
         echo '<div class="clear"></div>';
         echo '</div>';
     }
     //reset the notices handler
     self::$admin_notices = array();
 }
 /**
  * Display a notice if the plugin is inactive.
  * @return void
  */
 function license_key_notice()
 {
     // Only show on GravityView pages
     if (!gravityview_is_admin_page()) {
         return;
     }
     $license_status = self::getSetting('license_key_status');
     $license_id = self::getSetting('license_key');
     $license_id = empty($license_id) ? 'license' : $license_id;
     $message = esc_html__('Your GravityView license %s. This means you&rsquo;re missing out on updates and support! %sActivate your license%s or %sget a license here%s.', 'gravityview');
     /**
      * I wanted to remove the period from after the buttons in the string,
      * but didn't want to mess up the translation strings for the translators.
      */
     $message = mb_substr($message, 0, mb_strlen($message) - 1);
     $title = __('Inactive License', 'gravityview');
     $status = '';
     $update_below = false;
     $primary_button_link = admin_url('edit.php?post_type=gravityview&amp;page=gravityview_settings');
     switch ($license_status) {
         /** @since 1.17 */
         case 'expired':
             $title = __('Expired License', 'gravityview');
             $status = 'expired';
             $message = $this->get_license_handler()->strings('expired', self::getSetting('license_key_response'));
             break;
         case 'invalid':
             $title = __('Invalid License', 'gravityview');
             $status = __('is invalid', 'gravityview');
             break;
         case 'deactivated':
             $status = __('is inactive', 'gravityview');
             $update_below = __('Activate your license key below.', 'gravityview');
             break;
             /** @noinspection PhpMissingBreakStatementInspection */
         /** @noinspection PhpMissingBreakStatementInspection */
         case '':
             $license_status = 'site_inactive';
             // break intentionally left blank
         // break intentionally left blank
         case 'inactive':
         case 'site_inactive':
             $status = __('has not been activated', 'gravityview');
             $update_below = __('Activate your license key below.', 'gravityview');
             break;
     }
     $url = 'https://gravityview.co/pricing/?utm_source=admin_notice&utm_medium=admin&utm_content=' . $license_status . '&utm_campaign=Admin%20Notice';
     // Show a different notice on settings page for inactive licenses (hide the buttons)
     if ($update_below && gravityview_is_admin_page('', 'settings')) {
         $message = sprintf($message, $status, '<div class="hidden">', '', '', '</div><a href="#" onclick="jQuery(\'#license_key\').focus(); return false;">' . $update_below . '</a>');
     } else {
         $message = sprintf($message, $status, "\n\n" . '<a href="' . esc_url($primary_button_link) . '" class="button button-primary">', '</a>', '<a href="' . esc_url($url) . '" class="button button-secondary">', '</a>');
     }
     if (!empty($status)) {
         GravityView_Admin_Notices::add_notice(array('message' => $message, 'class' => 'updated', 'title' => $title, 'cap' => 'gravityview_edit_settings', 'dismiss' => sha1($license_status . '_' . $license_id)));
     }
 }
Esempio n. 4
0
 /**
  * Add a notice to be displayed in the admin.
  * @deprecated since 1.12
  * @param array $notice Array with `class` and `message` keys. The message is not escaped.
  */
 public static function add_notice($notice = array())
 {
     GravityView_Admin_Notices::add_notice($notice);
 }
Esempio n. 5
0
 /**
  * Display a notice if the plugin is inactive.
  * @return void
  */
 function license_key_notice()
 {
     // Show license notice on all GV pages, except for settings page
     if (gravityview_is_admin_page('', 'settings')) {
         return;
     }
     $license_status = self::getSetting('license_key_status');
     $license_id = self::getSetting('license_key');
     $license_id = empty($license_id) ? 'license' : $license_id;
     $message = esc_html__('Your GravityView license %s. This means you&rsquo;re missing out on updates and support! %sActivate your license%s or %sget a license here%s.', 'gravityview');
     $title = __('Inactive License', 'gravityview');
     $status = '';
     switch ($license_status) {
         case 'invalid':
             $title = __('Invalid License', 'gravityview');
             $status = __('is invalid', 'gravityview');
             break;
         case 'deactivated':
             $status = __('is inactive', 'gravityview');
             break;
             /** @noinspection PhpMissingBreakStatementInspection */
         /** @noinspection PhpMissingBreakStatementInspection */
         case '':
             $license_status = 'site_inactive';
             // break intentionally left blank
         // break intentionally left blank
         case 'site_inactive':
             $status = __('has not been activated', 'gravityview');
             break;
     }
     $url = 'https://gravityview.co/pricing/?utm_source=admin_notice&utm_medium=admin&utm_content=' . $license_status . '&utm_campaign=Admin%20Notice';
     $message = sprintf($message, $status, "\n\n" . '<a href="' . admin_url('edit.php?post_type=gravityview&amp;page=gravityview_settings') . '" class="button button-primary">', '</a>', '<a href="' . esc_url($url) . '" class="button button-secondary">', '</a>');
     if (!empty($status)) {
         GravityView_Admin_Notices::add_notice(array('message' => $message, 'class' => 'updated', 'title' => $title, 'dismiss' => sha1($license_status . '_' . $license_id)));
     }
 }