GravityView  1.19.4
The best, easiest way to display Gravity Forms entries on your website.
class-admin-welcome.php
Go to the documentation of this file.
1 <?php
2 /**
3  * Welcome Page Class
4  *
5  * @package GravityView
6  * @author Zack Katz <zack@katzwebservices.com>
7  * @license ToBeDefined
8  * @link http://www.katzwebservices.com
9  * @copyright Copyright 2014, Katz Web Services, Inc.
10  *
11  * @since 1.0.0
12  */
13 
14 // Exit if accessed directly
15 if ( ! defined( 'ABSPATH' ) ) exit;
16 
17 /**
18  * GravityView_Welcome Class
19  *
20  * A general class for About page.
21  *
22  * @since 1.0
23  */
25 
26  /**
27  * @var string The capability users should have to view the page
28  */
29  public $minimum_capability = 'gravityview_getting_started';
30 
31  /**
32  * Get things started
33  *
34  * @since 1.0
35  */
36  public function __construct() {
37  add_action( 'admin_menu', array( $this, 'admin_menus'), 200 );
38  add_action( 'admin_head', array( $this, 'admin_head' ) );
39  add_action( 'admin_init', array( $this, 'welcome' ) );
40  add_filter( 'gravityview_is_admin_page', array( $this, 'is_dashboard_page'), 10, 2 );
41  }
42 
43  /**
44  * Register the Dashboard Pages which are later hidden but these pages
45  * are used to render the Welcome pages.
46  *
47  * @access public
48  * @since 1.0
49  * @return void
50  */
51  public function admin_menus() {
52 
53  // Add help page to GravityView menu
54  add_submenu_page(
55  'edit.php?post_type=gravityview',
56  __('GravityView: Getting Started', 'gravityview'),
57  __('Getting Started', 'gravityview'),
58  $this->minimum_capability,
59  'gv-getting-started',
60  array( $this, 'getting_started_screen' )
61  );
62 
63  // Changelog Page
64  add_submenu_page(
65  'edit.php?post_type=gravityview',
66  __( 'Changelog', 'gravityview' ),
67  __( 'Changelog', 'gravityview' ),
68  $this->minimum_capability,
69  'gv-changelog',
70  array( $this, 'changelog_screen' )
71  );
72 
73  // Credits Page
74  add_submenu_page(
75  'edit.php?post_type=gravityview',
76  __( 'Credits', 'gravityview' ),
77  __( 'Credits', 'gravityview' ),
78  $this->minimum_capability,
79  'gv-credits',
80  array( $this, 'credits_screen' )
81  );
82 
83  }
84 
85  /**
86  * Is this page a GV dashboard page?
87  *
88  * @return boolean $is_page True: yep; false: nope
89  */
90  public function is_dashboard_page($is_page = false, $hook = NULL) {
91  global $plugin_page;
92 
93  if($is_page) { return $is_page; }
94 
95  return in_array( $plugin_page, array( 'gv-about', 'gv-credits', 'gv-getting-started' ) );
96  }
97 
98  /**
99  * Hide Individual Dashboard Pages
100  *
101  * @access public
102  * @since 1.0
103  * @return void
104  */
105  public function admin_head() {
106  global $plugin_page;
107 
108  remove_submenu_page( 'edit.php?post_type=gravityview', 'gv-credits' );
109  remove_submenu_page( 'edit.php?post_type=gravityview', 'gv-changelog' );
110 
111  if( !$this->is_dashboard_page() ) { return; }
112 
113  ?>
114  <style type="text/css" media="screen">
115  /*<![CDATA[*/
116 
117  .update-nag { display: none; }
118  .clear { clear: both; display: block; width: 100%; }
119  .gv-welcome-screenshots {
120  float: right;
121  clear:right;
122  max-width:50%;
123  border: 1px solid #ccc;
124  margin: 0 10px 10px 1.25rem!important;
125  }
126  /*]]>*/
127  </style>
128  <?php
129  }
130 
131  /**
132  * Navigation tabs
133  *
134  * @access public
135  * @since 1.0
136  * @return void
137  */
138  public function tabs() {
139  global $plugin_page;
140 
141  // Don't fetch -beta, etc.
142  list( $display_version ) = explode( '-', GravityView_Plugin::version );
143 
144  $selected = !empty( $plugin_page ) ? $plugin_page : 'gv-getting-started';
145 
146  echo gravityview_get_floaty( 132 );
147  ?>
148 
149  <h1><?php printf( esc_html__( 'Welcome to GravityView %s', 'gravityview' ), $display_version ); ?></h1>
150  <div class="about-text"><?php esc_html_e( 'Thank you for installing GravityView. Beautifully display your Gravity Forms entries.', 'gravityview' ); ?></div>
151 
152  <h2 class="nav-tab-wrapper clear">
153  <a class="nav-tab <?php echo $selected == 'gv-getting-started' ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'gv-getting-started', 'post_type' => 'gravityview'), 'edit.php' ) ) ); ?>">
154  <?php _e( "Getting Started", 'gravityview' ); ?>
155  </a>
156  <a class="nav-tab <?php echo $selected == 'gv-changelog' ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'gv-changelog', 'post_type' => 'gravityview'), 'edit.php' ) ) ); ?>">
157  <?php _e( "List of Changes", 'gravityview' ); ?>
158  </a>
159  <a class="nav-tab <?php echo $selected == 'gv-credits' ? 'nav-tab-active' : ''; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'gv-credits', 'post_type' => 'gravityview'), 'edit.php' ) ) ); ?>">
160  <?php _e( 'Credits', 'gravityview' ); ?>
161  </a>
162  </h2>
163  <?php
164  }
165 
166  /**
167  * Render About Screen
168  *
169  * @access public
170  * @since 1.0
171  * @return void
172  */
173  public function getting_started_screen() {
174  ?>
175  <div class="wrap about-wrap">
176  <?php $this->tabs(); ?>
177  </div>
178 
179  <div class="wrap">
180 
181  <div style="text-align:center; padding-top: 1em;">
182  <h2>Read more articles on using GravityView</h2>
183  <p><a class="button button-primary button-hero" href="http://docs.gravityview.co/category/24-category">Getting Started Articles</a></p>
184  </div>
185 
186  <div class="about-wrap"><h2 class="about-headline-callout">Configuring a View</h2></div>
187 
188  <div class="feature-section col two-col" style="margin-top:1em;">
189 
190  <div>
191 
192  <h2>Create a View</h2>
193 
194  <ol class="ol-decimal">
195  <li>Go to <a href="<?php echo admin_url('post-new.php?post_type=gravityview'); ?>">Views &gt; New View</a></li>
196  <li>If you want to <strong>create a new form</strong>, click the "Start Fresh" button</li>
197  <li>If you want to <strong>use an existing form&rsquo;s entries</strong>, select from the dropdown.</li>
198  <li>Select the type of View you would like to create. There are two core types of Views: <strong>Table</strong> and <strong>Listing</strong>.
199  <ul class="ul-square">
200  <li><strong>Table Views</strong> output entries as tables; a grid of data.</li>
201  <li><strong>Listing Views</strong> display entries in a more visual layout.</li>
202  </ul>
203  </li>
204  <li>On the View Configuration metabox, click on the "+Add Field" button to add form fields to the active areas of your View. These are the fields that will be displayed in the frontend.</li>
205  </ol>
206  </div>
207 
208  <div class="last-feature">
209  <h2>Embed Views in Posts &amp; Pages</h2>
210  <p><img src="<?php echo plugins_url( 'assets/images/screenshots/add-view-button.png', GRAVITYVIEW_FILE ); ?>" class="gv-welcome-screenshots" />Views don&rsquo;t need to be embedded in a post or page, but you can if you want. Embed Views using the "Add View" button above your content editor.</p>
211  </div>
212  </div>
213 
214  <div class="feature-section clear">
215  <h2>Configure Multiple Entry, Single Entry, and Edit Entry Layouts</h2>
216 
217  <p><img src="<?php echo plugins_url( 'assets/images/screenshots/add-field.png', GRAVITYVIEW_FILE ); ?>" alt="Add a field dialog box" class="gv-welcome-screenshots" />
218  You can configure what fields are displayed in <strong>Multiple Entry</strong>, <strong>Single Entry</strong>, and <strong>Edit Entry</strong> modes. These can be configured by clicking on the tabs in "View Configuration."
219  </p>
220 
221  <ul class="ul-disc">
222  <li>Click "+ Add Field" to add a field to a zone</li>
223  <li>Click the name of the field you want to display</li>
224  <li>Once added, fields can be dragged and dropped to be re-arranged. Hover over the field until you see a cursor with four arrows, then drag the field.</li>
225  <li>Click the <a href="#" style="text-decoration:none;"><i class="dashicons dashicons-admin-generic"></i></a> gear icon on each field to configure the <strong>Field Settings</strong></li>
226  </ul>
227  </div>
228 
229  <div class="clear">
230  <h2>What is a View?</h2>
231  <p>When a form is submitted in Gravity Forms, an entry is created. Without GravityView, Gravity Forms entries are visible only in the WordPress dashboard, and only to users with permission.</p>
232 
233  <p>GravityView allows you to display entries on the front of your site. In GravityView, when you arrange the fields you want displayed and save the configuration, it's called a "View".</p>
234  </div>
235  </div>
236  <?php
237  }
238 
239 
240  /**
241  * Render Changelog Screen
242  *
243  * @since 1.0.1
244  * @return void
245  */
246  public function changelog_screen() {
247 
248  ?>
249  <div class="wrap about-wrap">
250 
251  <?php $this->tabs(); ?>
252 
253  <div class="changelog point-releases" style="border-bottom: 0">
254 
255  <div class="feature-section col two-col" style="margin:0; padding: 0;">
256  <div class="col col-1">
257  <div class="media-container" style="min-height:81px; border: none;"><img alt="Front-end entry approval" src="<?php echo plugins_url( 'assets/images/screenshots/frontend-approval.gif', GRAVITYVIEW_FILE ); ?>"></div>
258  <h4 class="higher">Front-end Entry Approval</h4>
259  <p><strong>It&rsquo;s here!</strong>: you can now approve entries from the front of the site. It's easier than ever: just add the "Approve Entries" field to your View and get started.</p>
260  <p><a href="https://docs.gravityview.co/article/390-entry-approval" class="button-primary button button-large">Learn how to set it up!</a></p>
261  </div>
262 
263  <div class="col col-2 last-feature">
264  <div class="media-container" style="min-height:81px; border: none;"><img src="<?php echo plugins_url( 'assets/images/screenshots/show-all-entries-setting.png', GRAVITYVIEW_FILE ); ?>" alt="Show all entries to administrators setting"></div>
265  <h4 class="higher">Show All Entries to Administrators</h4>
266  <p>We added a setting to make front-end moderation easy. The new "Show all entries to administrators" setting allows administrators to see entries with any approval status, while everyone else will only see approved entries. It makes moderating entries easy.</p>
267  </div>
268  </div>
269 
270  <div class="headline-feature" style="max-width: 100%">
271  <h2 style="border-bottom: 1px solid #ccc; padding-bottom: 1em; margin-bottom: 0;"><?php esc_html_e( 'What&rsquo;s New', 'gravityview' ); ?></h2>
272  </div>
273 
274 
275  <h3>1.19.4 on January 19, 2017</h3>
276 
277  <ul>
278  <li><strong>GravityView requirements will soon be updated</strong>: Gravity Forms Version 2.0+, PHP 5.3+</li>
279  <li>Updated: GravityView now requires WordPress 4.0 or newer</li>
280  <li>Fixed: Search Bar search not working for states in the United States</li>
281  <li>Fixed: WPML conflict where Single Entry or Edit Entry screens are inaccessible</li>
282  <li>Fixed: Prevent PHP error when displaying GravityView using <code>get_gravityview()</code></li>
283  <li>Updated translations:
284 
285  <ul>
286  <li>🇩🇰 Danish <em>100% translated</em></li>
287  <li>🇳🇴 Norwegian <em>100% translated</em></li>
288  <li>🇸🇪 Swedish translation updated</li>
289  </ul></li>
290  </ul>
291 
292  <p>__Developer Notes: __</p>
293 
294  <ul>
295  <li>New: We&#39;re starting the migration to a new wrapper API that will awesome. We will be rolling out new functionality and documentation over time. For now, we are just using it to load the plugin. <a href="https://i.imgur.com/xmkONOD.gif">Very exciting time</a>!</li>
296  <li>Fixed: Issue fetching image sizes when using <code>GravityView_Image</code> class and fetching from a site with invalid SSL cert.</li>
297  <li>Added: <code>gravityview_directory_link</code> to modify the URL to the View directory context (in <code>GravityView_API::directory_link()</code>)</li>
298  </ul>
299 
300 
301  <h3>1.19.3 on January 9, 2017</h3>
302 
303  <p>First update of 2017! We&#39;ve got great things planned for GravityView and our Extensions. As always, <a href="mailto:support@gravityview.co">contact us</a> with any questions or feedback. We don&#39;t bite!</p>
304 
305  <ul>
306  <li>Fixed: List field inputs not loading in Edit Entry when values were empty or the field was hidden initially because of Conditional Logic</li>
307  <li>Fixed: Prevent Approve Entry and Delete Entry fields from being added to Edit Entry field configuration</li>
308  <li>Fixed: Don&#39;t render Views outside &quot;the loop&quot;, prevents conflicts with other plugins that run <code>the_content</code> filter outside normal places</li>
309  <li>Fixed: Only display &quot;You have attempted to view an entry that is not visible or may not exist.&quot; warning once when multiple Views are embedded on a page</li>
310  <li>Fixed: The <code>[gravityview]</code> shortcode would not be parsed properly due to HTML encoding when using certain page builders, including OptimizePress</li>
311  <li>Fixed: Potential errors when non-standard form fields are added to Edit Entry configurations (&quot;Creating default object from empty value&quot; and &quot;Cannot use object of type stdClass as array&quot;)</li>
312  <li>Updated translations:
313 
314  <ul>
315  <li>🇨🇳 Chinese <em>100% translated</em> (thank you, Michael Edi!)</li>
316  <li>🇫🇷 French <em>100% translated</em></li>
317  <li>🇧🇷 Brazilian Portuguese <em>100% translated</em> (thanks, Rafael!)</li>
318  <li>🇳🇱 Dutch translation updated (thank you, Erik van Beek!)</li>
319  <li>🇸🇪 Swedish translation updated</li>
320  <li>Updated Spanish (Spain + Mexican) and German (<code>de</code> + <code>de_DE</code>) with each other</li>
321  </ul></li>
322  </ul>
323 
324  <p><strong>Developer Notes:</strong></p>
325 
326  <ul>
327  <li><code>GVCommon::get_form_from_entry_id()</code> now correctly fetches forms with any status</li>
328  <li>Moved <code>GravityView_Support_Port::get_related_plugins_and_extensions()</code> to <code>GV_License_Handler</code> class</li>
329  <li>Updated the <code>install.sh</code> bash script
330 
331  <ul>
332  <li>The 6th parameter now prevents database creation, and the 7th is the Gravity Forms source file</li>
333  <li>Script no longer breaks if there is a space in a directory name</li>
334  <li><code>/tmp/</code> is no longer created in the GravityView directory; it&#39;s installed in the server&#39;s <code>/tmp/</code> directory</li>
335  </ul></li>
336  <li>Fixed Travis CI integration</li>
337  </ul>
338 
339 
340  <h3>1.19.2 on December 21, 2016</h3>
341 
342  <ul>
343  <li>Added: Search Bar now supports displaying State and Country fields as Select, List, or Radio input types (before, only text fields)</li>
344  <li>Fixed: Single entries not accessible when a View has filters based on Gravity Forms &quot;Advanced&quot; fields like Address and Name</li>
345  <li>Added: There is now a warning when a View tab has not been configured. The question &quot;Why aren&#39;t my entries showing up?&quot; is often due to a lack of configuration.</li>
346  <li>Added: Notice for future PHP requirements.
347  <ul>
348  <li>Reminder: GravityView will soon require PHP 5.3. 97.6% of sites are already compatible.</li>
349  </ul>
350  </li>
351  <li>Fixed: Conflict with another plugin that prevented the Field Settings from being reachable in the Edit View screen</li>
352  <li>Fixed: GravityView widgets repeating twice for some customers</li>
353  </ul>
354 
355  <p><strong>Developer Notes:</strong></p>
356 
357  <ul>
358  <li>Added: <code>GravityView_View::getContextFields()</code> method allows fetching the fields configured for each View context (<code>directory</code>, <code>single</code>, <code>edit</code>)
359 
360  <ul>
361  <li>Modified: <code>templates/list-body.php</code> and <code>templates/list-single.php</code> to add a check for context fields before rendering</li>
362  </ul></li>
363  <li>Added: <code>$field_id</code> as fourth argument passed to <code>gravityview/extension/search/input_type</code> filter</li>
364  <li>Added: Added <code>$cap</code> and <code>$object_id</code> parameters to <code>GVCommon::generate_notice()</code> to be able to check caps before displaying a notice</li>
365  </ul>
366 
367  <h3>1.19.1 on November 15, 2016</h3>
368 
369  <ul>
370  <li>Fixed: When creating a new View, the "form doesn't exist" warning would display</li>
371  </ul>
372 
373  <h3>1.19 on November 14, 2016</h3>
374 
375  <ul>
376  <li>New: <strong>Front-end entry moderation</strong>! You can now approve and disapprove entries from the front of a View - <a href="https://docs.gravityview.co/article/390-entry-approval">learn how to use front-end entry approval</a>
377 
378  <ul>
379  <li>Add entry moderation to your View with the new &quot;Approve Entries&quot; field</li>
380  <li>Displaying the current approval status by using the new &quot;Approval Status&quot; field</li>
381  <li>Views have a new &quot;Show all entries to administrators&quot; setting. This allows administrators to see entries with any approval status. <a href="http://docs.gravityview.co/article/390-entry-approval#clarify-step-16">Learn how to use this new setting</a></li>
382  </ul></li>
383  <li>Fixed: Approval values not updating properly when using the &quot;Approve/Reject&quot; and &quot;User Opt-In&quot; fields</li>
384  <li>Tweak: Show inactive forms in the Data Source form dropdown</li>
385  <li>Tweak: If a View is connected to a form that is in the trash or does not exist, an error message is now shown</li>
386  <li>Tweak: Don&#39;t show &quot;Lost in space?&quot; message when searching existing Views</li>
387  </ul>
388 
389  <p><strong>Developer Notes:</strong></p>
390 
391  <ul>
392  <li>Added: <code>field-approval.css</code> CSS file. <a href="http://docs.gravityview.co/article/388-front-end-approval-css">Learn how to override the design here</a>.</li>
393  <li>Modified: Removed the bottom border on the &quot;No Results&quot; text (<code>.gv-no-results</code> CSS selector)</li>
394  <li>Fixed: Deprecated <code>get_bloginfo()</code> usage</li>
395  </ul>
396 
397  <h3>1.18.1 on November 3, 2016</h3>
398 
399  <ul>
400  <li>Updated: 100% Chinese translationthank you <a href="https://www.transifex.com/user/profile/michaeledi/">Michael Edi</a>!</li> <li>Fixed: Entry approval not working when using <a href="http://docs.gravityview.co/article/57-customizing-urls">custom entry slugs</a></li> <li>Fixed: <code>Undefined index: is_active</code> warning is shown when editing entries with User Registration Addon active</li> <li>Fixed: Strip extra whitespace in Entry Note field templates</li> </ul> <h3>1.18 on October 11, 2016</h3> <ul> <li>Updated minimum requirements: WordPress 3.5, Gravity Forms 1.9.14</li> <li>Modified: Entries that are unapproved (not approved or disapproved) are shown as yellow circles</li> <li>Added: Shortcut to create a View for an existing form</li> <li>Added: Entry Note emails now have a message &quot;This note was sent from {url}&quot; to provide context for the note recipient</li> <li>Fixed: Edit Entry did not save other field values when Post fields were in the Edit Entry form</li> <li>Fixed: When using &quot;Start Fresh&quot; View presets, form fields were not being added to the &quot;Add Field&quot; field picker</li> <li>Fixed: Hidden visible inputs were showing in the &quot;Add Field&quot; picker (for example, the &quot;Middle Name&quot; input was hidden in the Name field, but showing as an option)</li> <li>Fixed: Fatal error when editing Post Content and Post Image fields</li> <li>Fixed: Lightbox images not loading</li> <li>Fixed: Lightbox loading indicator displaying below the overlay</li> <li>Fixed: &quot;New form created&quot; message was not shown when saving a draft using a &quot;Start Fresh&quot; View preset</li> <li>Gravity Forms User Registration Addon changes: <ul> <li>Gravity Forms User Registration 2.0 is no longer supported</li> <li>Fixed Processing &quot;Update User&quot; feeds</li> <li>Fixed: Inactive User Registration feeds were being processed</li> <li>Fixed: User Registration &quot;Update User&quot; feeds were being processed, even if the Update Conditions weren&#39;t met</li> <li>Fixed: Unable to use <code>gravityview/edit_entry/user_registration/trigger_update</code> filter</li> </ul></li> <li>Fixed: Prevent negative entry counts when approving and disapproving entries</li> <li>Fixed: PHP notice when WooCommerce Memberships is active</li> <li>Tweak: Entry Note emails now have paragraphs automatically added to them</li> <li>Tweak: When the global &quot;Show Support Port&quot; setting is &quot;Hide&quot;, always hide; if set to &quot;Show&quot;, respect each user&#39;s Support Port display preference</li> </ul> <p><strong>Developer Notes</strong></p> <ul> <li>Migrated <code>is_approved</code> entry meta values; statuses are now managed by the <code>GravityView_Entry_Approval_Status</code> class <ul> <li>&quot;Approved&quot; =&gt; <code>1</code>, use <code>GravityView_Entry_Approval_Status::APPROVED</code> constant</li> <li>&quot;0&quot; =&gt; <code>2</code>, use <code>GravityView_Entry_Approval_Status::DISAPPROVED</code> constant</li> <li>Use <code>$new_value = GravityView_Entry_Approval_Status::maybe_convert_status( $old_value )</code> to reliably translate meta values</li> </ul></li> <li>Added: <code>GVCommon::get_entry_id()</code> method to get the entry ID from a slug or ID</li> <li>Added: <code>gravityview_go_back_url</code> filter to modify the link URL used for the single entry back-link in <code>gravityview_back_link()</code> function</li> <li>Added: <code>gravityview/field/notes/wpautop_email</code> filter to disable <code>wpautop()</code> on Entry Note emails</li> <li>Added: <code>$email_footer</code> to the <code>gravityview/field/notes/email_content</code> filter content</li> <li>Modified: <code>note-add-note.php</code> template: added <code>current-url</code> hidden field</li> <li>Modified: <code>list-single.php</code> template file: added <code>.gv-grid-col-1-3</code> CSS class to the <code>.gv-list-view-content-image</code> container</li> <li>Fixed: Mask the Entry ID in the link to lightbox files</li> </ul> <h3>1.17.4 on September 7, 2016</h3> <ul> <li>Added: Support for editing <a href="https://gravitywiz.com/documentation/gp-unique-id/">Gravity Perks Unique ID</a> fields</li> <li>Fixed: Issue searching and sorting fields with multiple inputs (like names)</li> <li>Fixed: Restore Gravity Forms Quiz Addon details in the field picker</li> </ul> <p><strong>Developer Notes</strong></p> <ul> <li>Added: <code>gravityview_get_directory_widgets()</code>, <code>gravityview_set_directory_widgets()</code> wrapper functions to get and set View widget configurations</li> <li>Added: Second <code>$apply_filter</code> parameter to <code>GVCommon::get_directory_fields()</code> function to set whether or not to apply the <code>gravityview/configuration/fields</code> filter</li> </ul> <h3>1.17.3 on August 31, 2016</h3> <ul> <li>Added: Search Bar support for Gravity Forms Survey fields: filter by survey responses</li> <li>Added: Search Bar support for Gravity Flow: search entries by the current Step, Step Status, or Workflow Status</li> <li>Added: <code>[gvlogic]</code> and other shortcodes now can be used inside Email field settings content</li> <li>Added: Support for embedding Views in the front page of a site; the <a href="https://github.com/gravityview/gravityview-front-page-views">GravityView - Allow Front Page Views plugin</a> is no longer required</li> <li>Tweak: In Edit View, holding down the option (or alt) key while switching forms allows you to change forms without resetting field configurations - this is useful if you want to switch between duplicate forms</li> <li>Fixed: Restored correct Gravity Flow status and workflow values</li> <li>Fixed: Conflict when editing an entry in Gravity Flow</li> <li>Fixed: Tooltip title text of the field and widget "gear" icon</li> <li>Changed the plugin author from "Katz Web Services, Inc." to "GravityView" - it seemed like it was time!</li> </ul> <p><strong>Developer Notes</strong></p> <ul> <li>Modified: <code>gravityview_get_forms()</code> function and <code>GVCommon::get_forms()</code> method to be compatible with <code>GFAPI::get_forms()</code>. Now accepts <code>$active</code> and <code>$trash</code> arguments, as well as returning all form data (not just <code>id</code> and <code>title</code> keys)</li> <li>Modified: <code>template/fields/post_image.php</code> file to use <code>gravityview_get_link()</code> to generate the anchor link</li> <li>Modified: <code>rel="noopener noreferrer"</code> now added to all links generated using <code>gravityview_get_link()</code> with <code>target="_blank"</code>. This fixes a generic security issue (not specific to GravityView) when displaying links to submitted websites and "Open link in new window" is checked - <a href="https://dev.to/ben/the-targetblank-vulnerability-by-example">read more about it here</a></li> <li>Modified: Don't convert underscores to periods if not numeric in <code>GravityView_Widget_Search::prepare_field_filter()</code> - this fixes searching entry meta</li> <li>Modified: Added third <code>gravityview_search_field_label</code> parameter: <code>$field</code> - it's the field configuration array passed by the Search Bar</li> <li>Modified: HTML tags are now stripped from Email field body and subject content</li> <li>Modified: Moved <code>GravityView_Admin_View_Item</code>, <code>GravityView_Admin_View_Field</code>, and <code>GravityView_Admin_View_Widget</code> to their own files</li> <li>Added: Deprecation notices for methods that haven't been used since Version 1.2!</li> </ul> <h3>1.17.2 on August 9, 2016</h3> <ul> <li>Fixed: "Start Fresh" fails when there are no pre-existing forms in Gravity Forms</li> <li>Added: Support for embedding Views in Ultimate Member profile tabs</li> <li>Fixed: File Upload fields potentially displaying PHP warnings</li> <li>Fixed: Check plugin and theme existence before loading hooks</li> <li>Fixed: "Hide empty fields" not working when "Make Phone Number Clickable" is checked for Phone fields</li> <li>Fixed: Potential PHP warning when adding Password fields in Edit View</li> <li>Fixed: Dutch (Netherlands) <code>nl_NL</code> translation file fixed</li> <li>Fixed: Divi theme shortcode buttons and modal form added to Edit View screen</li> <li>Fixed: Possible for Approve Entries checkbox to use the wrong Form ID</li> <li>Fixed: Search issues with special characters <ul> <li>Searches that contained ampersands <code>&amp;</code> were not working</li> <li>Searches containing plus signs <code>+</code> were not working</li> <li>The "Select" Search Bar input type would not show the active search if search term contained an <code>&amp;</code></li> </ul> </li> <li>Fixed: Multisite issue: when Users are logged-in but not added to any sites, they aren't able to see View content</li> <li>Fixed: Never show GravityView Toolbar menu to users who aren't able to edit Views, Forms, or Entries</li> <li>Fixed: Allow passing <code>post_id</code> in <code>[gravityview]</code> shortcode</li> <li>Tweak: Use system fonts instead of Open Sans in the admin</li> <li>Modified: The default setting for "No-Conflict Mode" is now "On". GravityView <em>should look good</em> on your site!</li> </ul> <p><strong>Developer Notes:</strong></p> <ul> <li>Added: <code>gravityview_view_saved</code> action, triggered after a View has been saved in the admin</li> <li>Modified: Changed the Phone field template to use <code>gravityview_get_link()</code> to generate the anchor tag</li> <li>Added: <code>gravityview/common/get_entry_id_from_slug/form_id</code> filter to modify the form ID used to generate entry slugs, in order to avoid hash collisions with data from other forms</li> </ul> <h3>1.17.1 on June 27</h3> <ul> <li>Fixed: Entry approval with Gravity Forms 2.0 <ul> <li>Added: Approved/Disapproved filters to Gravity Forms "Entries" page</li> <li>Fixed: Bulk Approve/Disapprove</li> <li>Fixed: Approve column and Bulk Actions not visible on Gravity Forms Entries page</li> <li>Tweak: Improved speed of approving/disapproving entries</li> </ul> </li> <li>Fixed: "Reply To" reference fixed in <code>GVCommon::send_email()</code> function</li> <li>Added: Improved logging for creation of Custom Slug hash ids</li> <li>Translations updated: <ul> <li>Updated Chinese translation by <a href="https://www.transifex.com/user/profile/michaeledi/">@michaeledi</a></li> <li>Updated Persian translation by <a href="https://www.transifex.com/user/profile/azadmojtaba/">@azadmojtaba</a></li> </ul> </li> </ul> <h3>1.17 on June 14</h3> <ul> <li>Added: Entry Notes field <ul> <li>Add and delete Entry Notes from the frontend</li> <li>Allows users to email Notes when they are added</li> <li>Display notes to logged-out users</li> <li>New <a href="http://docs.gravityview.co/article/311-gravityview-capabilities">user capabilities</a> to limit access (<code>gravityview_add_entry_notes</code>, <code>gravityview_view_entry_notes</code>, <code>gravityview_delete_entry_notes</code>, <code>gravityview_email_entry_notes</code>)</li> </ul> </li> <li>Added: Merge Tag modifiers - now set a maximum length of content, and automatically add paragraphs to Merge Tags. <a href="https://docs.gravityview.co/article/350-merge-tag-modifiers">Read how to use the new Merge Tag modifiers</a>. <ul> <li><code>:maxwords:{number}</code> - Limit output to a set number of words</li> <li><code>:wpautop</code> - Automatically add line breaks and paragraphs to content</li> <li><code>:timestamp</code> - Convert dates into timestamp values</li> </ul> </li> <li>Modified: Major changes to the Search Bar design</li> <li>Added: Field setting to display the input value, label, or check mark, depending on field type. Currently supported: Checkbox, Radio, Drop Down fields.</li> <li>Added: RTL ("right to left") language support in default and List template styles (Added: <code>gv-default-styles-rtl.css</code> and <code>list-view-rtl.css</code> stylesheets)</li> <li>Added: Option to make Phone numbers click-to-call</li> <li>Added: GravityView parent menu to Toolbar; now you can edit the form connected to a View directly from the View <ul> <li>Changed: Don't show Edit View in the Admin Bar; it's now under the GravityView parent menu</li> <li>Fixed: Don't remove Edit Post/Page admin bar menu item</li> </ul> </li> <li>Added: Support for <a href="https://gravityflow.io">Gravity Flow</a> "Workflow Step" and Workflow "Final Status" fields</li> <li>Added: Support for Password fields. You probably shouldn't display them (in most cases!) but now you <em>can</em></li> <li>Modified: When deleting/trashing entries with GravityView, the connected posts created by Gravity Forms will now also be deleted/trashed</li> <li>Edit Entry improvements <ul> <li>Added: Edit Entry now fully supports <a href="https://www.gravityhelp.com/documentation/article/create-content-template/">Gravity Forms Content Templates</a></li> <li>Fixed: Edit Entry didn't pre-populate List inputs if they were part of a Post Custom Field field type</li> <li>Fixed: Updating Post Image fields in Edit Entry when the field is not set to "Featured Image" in Gravity Forms</li> <li>Fixed: "Rank" and "Ratings" Survey Field types not being displayed properly in Edit Entry</li> <li>Fixed: Signature field not displaying existing signatures in Edit Entry</li> <li>Fixed: Post Category fields will now update to show the Post's current categories</li> <li>Fixed: Allow multiple Post Category fields in Edit Entry</li> <li>Fixed: PHP warning caused when a form had "Anti-spam honeypot" enabled</li> </ul> </li> <li>Fixed: When inserting a GravityView shortcode using the "Add View" button, the form would flow over the window</li> <li>Fixed: <a href="https://churchthemes.com">Church Themes</a> theme compatibility</li> <li>Fixed: Inactive and expired licenses were being shown the wrong error message</li> <li>Fixed: Moving domains would prevent GravityView from updating</li> <li>Fixed: When using the User Opt-in field together with the View setting "Show Only Approved Entries", entries weren't showing</li> <li>Fixed: If a label is set for Search Bar "Link" fields, use the label. Otherwise, "Show only:" will be used</li> <li>Fixed: Showing the first column of a List field was displaying all the field's columns</li> </ul> <p><strong>Developer Notes</strong></p> <ul> <li>Templates changed: <ul> <li><code>list-single.php</code> and <code>list-body.php</code>: changed <code>#gv_list_{entry_id}</code> to <code>#gv_list_{entry slug}</code>. If using custom entry slugs, the ID attribute will change. Otherwise, no change.</li> <li><code>list-body.php</code>: Removed <code>id</code> attribute from entry title <code>&lt;h3&gt;</code></li> </ul> </li> <li>Added: Override GravityView CSS files by copying them to a template's <code>/gravityview/css/</code> sub-directory</li> <li>Added: <code>gravityview_css_url()</code> function to check for overriding CSS files in templates</li> <li>Added: <code>gravityview_use_legacy_search_style</code> filter; return <code>true</code> to use previous Search Bar stylesheet</li> <li>Major CSS changes for the Search Bar. <ul> <li>Search inputs <code>&lt;div&gt;</code>s now have additional CSS classes based on the input type: <code>.gv-search-field-{input_type}</code> where <code>{input_type}</code> is: <code>search_all</code> (search everything text box), <code>link</code>, <code>date</code>, <code>checkbox</code> (list of checkboxes), <code>single_checkbox</code>, <code>text</code>, <code>radio</code>, <code>select</code>, <code>multiselect</code>, <code>date_range</code>, <code>entry_id</code>, <code>entry_date</code></li> <li>Added <code>gv-search-date-range</code> CSS class to containers that have date ranges</li> <li>Moved <code>gv-search-box-links</code> CSS class from the <code>&lt;p&gt;</code> to the <code>&lt;div&gt;</code> container</li> <li>Fixed: <code>&lt;label&gt;</code> <code>for</code> attribute was missing quotes</li> </ul> </li> <li>Added: <ul> <li><code>gravityview/edit_entry/form_fields</code> filter to modify the fields displayed in Edit Entry form</li> <li><code>gravityview/edit_entry/field_value_{field_type}</code> filter to change the value of an Edit Entry field for a specific field type</li> <li><code>gravityview/edit-entry/render/before</code> action, triggered before the Edit Entry form is rendered</li> <li><code>gravityview/edit-entry/render/after</code> action, triggered after the Edit Entry form is rendered</li> </ul> </li> <li>Fixed: PHP Warning for certain hosting <code>open_basedir</code> configurations</li> <li>Added: <code>gravityview/delete-entry/delete-connected-post</code> Filter to modify behavior when entry is deleted. Return false to prevent posts from being deleted or trashed when connected entries are deleted or trashed. See <code>gravityview/delete-entry/mode</code> filter to modify the default behavior, which is "delete".</li> <li>Added: <code>gravityview/edit_entry/post_content/append_categories</code> filter to modify whether post categories should be added to or replaced?</li> <li>Added: <code>gravityview/common/get_form_fields</code> filter to modify fields used in the "Add Field" selector, View "Filters" dropdowns, and Search Bar</li> <li>Added: <code>gravityview/search/searchable_fields</code> filter to modify fields used in the Search Bar field dropdown</li> <li>Added: <code>GVCommon::send_email()</code>, a public alias of <code>GFCommon::send_email()</code></li> <li>Added: <code>GravityView_Field_Notes</code> class, with lots of filters to modify output</li> <li>Added: <code>$field_value</code> parameter to <code>gravityview_get_field_label()</code> function and <code>GVCommon::get_field_label()</code> method</li> <li>Added: <code>$force</code> parameter to <code>GravityView_Plugin::frontend_actions()</code> to force including files</li> <li>Modified: Added second parameter <code>$entry</code> to <code>gravityview/delete-entry/trashed</code> and <code>gravityview/delete-entry/deleted</code> actions</li> <li>Fixed: An image with no <code>src</code> output a broken HTML <code>&lt;img&gt;</code> tag</li> </ul> <p style="text-align: center"> <a href="https://gravityview.co/changelog/" class="aligncenter button button-secondary button-hero" style="margin: 0 auto; display: inline-block;">View All Changes</a> </p> <div class="clear"></div> </div> </div> <?php } /** * Render Credits Screen * * @access public * @since 1.0 * @return void */ public function credits_screen() { ?> <div class="wrap about-wrap"> <?php $this->tabs(); ?> <p class="about-description"><?php _e( 'GravityView is brought to you by:', 'gravityview' ); ?></p> <div class="feature-section col two-col"> <div class="col"> <h3>Zack Katz</h3> <h4 style="font-weight:0; margin-top:0">Project Lead &amp; Developer</h4> <p></p> <p><img style="float:left; margin: 0 15px 10px 0;" src="<?php echo plugins_url( 'assets/images/zack.jpg', GRAVITYVIEW_FILE ); ?>" width="94" height="94" />Zack has been developing integrations with Gravity Forms since 2009. He is the President of Katz Web Services and lives with his wife (and cat) in Denver, Colorado.</p> <p><a href="https://katz.co">View Zack&rsquo;s website</a></p> </div> <div class="col last-feature"> <h3>Rafael Ehlers</h3> <h4 style="font-weight:0; margin-top:0">Project Manager, Support Lead &amp; Customer Advocate</h4> <p><img style="margin: 0 15px 10px 0;" class="alignleft avatar" src="<?php echo plugins_url( 'assets/images/rafael.jpg', GRAVITYVIEW_FILE ); ?>" width="94" height="94" />Rafael helps guide GravityView development priorities and keep us on track. He&rsquo;s the face of our customer support and helps customers get the most out of the product. Rafael hails from Porto Alegre, Brazil.</p> <p><a href="http://heropress.com/essays/journey-resilience/">View Rafael&rsquo;s WordPress Journey</a></p> </div> </div> <hr class="clear" /> <div class="feature-section"> <div> <h2><?php esc_attr_e( 'Contributors', 'gravityview' ); ?></h2> <ul class="wp-people-group"> <li class="wp-person">Core &amp; Extension development by <a href="http://tinygod.pt" class="block">Luis Godinho</a></li> <li class="wp-person">Bengali translation by <a href="https://www.transifex.com/accounts/profile/tareqhi/">@tareqhi</a></li> <li class="wp-person">German translation by <a href="https://www.transifex.com/user/profile/hubert123456/">@hubert123456</a>, <a href="https://www.transifex.com/accounts/profile/seschwarz/">@seschwarz</a>, <a href="https://www.transifex.com/accounts/profile/abdmc/">@abdmc</a>, <a href="https://www.transifex.com/accounts/profile/deckerweb/">@deckerweb</a></li> <li class="wp-person">Turkish translation by <a href="https://www.transifex.com/accounts/profile/suhakaralar/">@suhakaralar</a></li> <li class="wp-person">Dutch translation by <a href="https://www.transifex.com/accounts/profile/leooosterloo/">@leooosterloo</a>, <a href="https://www.transifex.com/accounts/profile/Weergeven/">@Weergeven</a>, and <a href="https://www.transifex.com/accounts/profile/erikvanbeek/">@erikvanbeek</a></li> <li class="wp-person">Hungarian translation by <a href="https://www.transifex.com/accounts/profile/dbalage/">@dbalage</a> and <a href="https://www.transifex.com/accounts/profile/Darqebus/">@Darqebus</a></li> <li class="wp-person">Italian translation by <a href="https://www.transifex.com/accounts/profile/Lurtz/">@Lurtz</a> and <a href="https://www.transifex.com/accounts/profile/ClaraDiGennaro/">@ClaraDiGennaro</a></li> <li class="wp-person">French translation by <a href="https://www.transifex.com/accounts/profile/franckt/">@franckt</a> and <a href="https://www.transifex.com/accounts/profile/Newbdev/">@Newbdev</a></li> <li class="wp-person">Portuguese translation by <a href="https://www.transifex.com/accounts/profile/luistinygod/">@luistinygod</a>, <a href="https://www.transifex.com/accounts/profile/marlosvinicius.info/">@marlosvinicius</a>, and <a href="https://www.transifex.com/user/profile/rafaehlers/">@rafaehlers</a></li> <li class="wp-person">Romanian translation by <a href="https://www.transifex.com/accounts/profile/ArianServ/">@ArianServ</a></li> <li class="wp-person">Finnish translation by <a href="https://www.transifex.com/accounts/profile/harjuja/">@harjuja</a></li> <li class="wp-person">Spanish translation by <a href="https://www.transifex.com/accounts/profile/jorgepelaez/">@jorgepelaez</a>, <a href="https://www.transifex.com/accounts/profile/luisdiazvenero/">@luisdiazvenero</a>, <a href="https://www.transifex.com/accounts/profile/josemv/">@josemv</a>, <a href="https://www.transifex.com/accounts/profile/janolima/">@janolima</a> and <a href="https://www.transifex.com/accounts/profile/matrixmercury/">@matrixmercury</a></li> <li class="wp-person">Swedish translation by <a href="https://www.transifex.com/accounts/profile/adamrehal/">@adamrehal</a></li> <li class="wp-person">Indonesian translation by <a href="https://www.transifex.com/accounts/profile/sariyanta/">@sariyanta</a></li> <li class="wp-person">Norwegian translation by <a href="https://www.transifex.com/accounts/profile/aleksanderespegard/">@aleksanderespegard</a></li> <li class="wp-person">Danish translation by <a href="https://www.transifex.com/accounts/profile/jaegerbo/">@jaegerbo</a></li> <li class="wp-person">Chinese translation by <a href="https://www.transifex.com/user/profile/michaeledi/">@michaeledi</a></li> <li class="wp-person">Persian translation by <a href="https://www.transifex.com/user/profile/azadmojtaba/">@azadmojtaba</a></li> <li class="wp-person">Russian translation by <a href="https://www.transifex.com/user/profile/gkovaleff/">@gkovaleff</a></li> <li class="wp-person">Code contributions by <a href="https://github.com/ryanduff">@ryanduff</a>, <a href="https://github.com/dmlinn">@dmlinn</a>, and <a href="https://github.com/mgratch">@mgratch</a></li> </ul> <h4><?php esc_attr_e( 'Want to contribute?', 'gravityview' ); ?></h4> <p><?php echo sprintf( esc_attr__( 'If you want to contribute to the code, %syou can on Github%s. If your contributions are accepted, you will be thanked here.', 'gravityview'), '<a href="https://github.com/katzwebservices/GravityView">', '</a>' ); ?></p> </div> </div> <hr class="clear" /> <div class="changelog"> <h4>Thanks to the following open-source software:</h4> <ul> <li><a href="http://datatables.net/">DataTables</a> - amazing tool for table data display. Many thanks!</li> <li><a href="https://github.com/10up/flexibility">Flexibility</a> - Adds support for CSS flexbox to Internet Explorer 8 &amp; 9</li> <li><a href="https://github.com/GaryJones/Gamajo-Template-Loader">Gamajo Template Loader</a> - makes it easy to load template files with user overrides</li> <li><a href="https://github.com/carhartl/jquery-cookie">jQuery Cookie plugin</a> - Access and store cookie values with jQuery</li> <li><a href="https://katz.si/gf">Gravity Forms</a> - If Gravity Forms weren't such a great plugin, GravityView wouldn't exist!</li> <li>GravityView uses icons made by Freepik, Adam Whitcroft, Amit Jakhu, Zurb, Scott de Jonge, Yannick, Picol, Icomoon, TutsPlus, Dave Gandy, SimpleIcon from <a href="http://www.flaticon.com" title="Flaticon">www.flaticon.com</a></li> <li>GravityView uses free vector art by <a href="http://www.vecteezy.com">vecteezy.com</a></li> <li><a href="https://github.com/jnicol/standalone-phpenkoder">PHPEnkoder</a> script encodes the email addresses.</li> <li>The Duplicate View functionality is based on the excellent <a href="http://lopo.it/duplicate-post-plugin/">Duplicate Post plugin</a> by Enrico Battocchi</li> <li>Browser testing by <a href="https://www.browserstack.com">BrowserStack</a></li> <li><a href="https://easydigitaldownloads.com/downloads/software-licensing/">Easy Digital Downloads</a> makes auto-upgrades possible</li> </ul> </div> </div> <?php } /** * Sends user to the Welcome page on first activation of GravityView as well as each * time GravityView is upgraded to a new version * * @access public * @since 1.0 * @return void */ public function welcome() { global $plugin_page; // Bail if we're just editing the plugin if( $plugin_page === 'plugin-editor.php' ) { return; } // Bail if no activation redirect if ( ! get_transient( '_gv_activation_redirect' ) ) { return; } // Delete the redirect transient delete_transient( '_gv_activation_redirect' ); $upgrade = get_option( 'gv_version_upgraded_from' ); // Don't do anything if they've already seen the new version info if( $upgrade === GravityView_Plugin::version ) { return; } // Add "Upgraded From" Option update_option( 'gv_version_upgraded_from', GravityView_Plugin::version ); // Bail if activating from network, or bulk if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) { return; } // First time install if( ! $upgrade ) { wp_safe_redirect( admin_url( 'edit.php?post_type=gravityview&page=gv-getting-started' ) ); exit; } // Update else { wp_safe_redirect( admin_url( 'edit.php?post_type=gravityview&page=gv-changelog' ) ); exit; } } } new GravityView_Welcome; thank you <a href="https://www.transifex.com/user/profile/michaeledi/">Michael Edi</a>!</li>
401  <li>Fixed: Entry approval not working when using <a href="http://docs.gravityview.co/article/57-customizing-urls">custom entry slugs</a></li>
402  <li>Fixed: <code>Undefined index: is_active</code> warning is shown when editing entries with User Registration Addon active</li>
403  <li>Fixed: Strip extra whitespace in Entry Note field templates</li>
404  </ul>
405 
406  <h3>1.18 on October 11, 2016</h3>
407 
408  <ul>
409  <li>Updated minimum requirements: WordPress 3.5, Gravity Forms 1.9.14</li>
410  <li>Modified: Entries that are unapproved (not approved or disapproved) are shown as yellow circles</li>
411  <li>Added: Shortcut to create a View for an existing form</li>
412  <li>Added: Entry Note emails now have a message &quot;This note was sent from {url}&quot; to provide context for the note recipient</li>
413  <li>Fixed: Edit Entry did not save other field values when Post fields were in the Edit Entry form</li>
414  <li>Fixed: When using &quot;Start Fresh&quot; View presets, form fields were not being added to the &quot;Add Field&quot; field picker</li>
415  <li>Fixed: Hidden visible inputs were showing in the &quot;Add Field&quot; picker (for example, the &quot;Middle Name&quot; input was hidden in the Name field, but showing as an option)</li>
416  <li>Fixed: Fatal error when editing Post Content and Post Image fields</li>
417  <li>Fixed: Lightbox images not loading</li>
418  <li>Fixed: Lightbox loading indicator displaying below the overlay</li>
419  <li>Fixed: &quot;New form created&quot; message was not shown when saving a draft using a &quot;Start Fresh&quot; View preset</li>
420  <li>Gravity Forms User Registration Addon changes:
421 
422  <ul>
423  <li>Gravity Forms User Registration 2.0 is no longer supported</li>
424  <li>Fixed Processing &quot;Update User&quot; feeds</li>
425  <li>Fixed: Inactive User Registration feeds were being processed</li>
426  <li>Fixed: User Registration &quot;Update User&quot; feeds were being processed, even if the Update Conditions weren&#39;t met</li>
427  <li>Fixed: Unable to use <code>gravityview/edit_entry/user_registration/trigger_update</code> filter</li>
428  </ul></li>
429  <li>Fixed: Prevent negative entry counts when approving and disapproving entries</li>
430  <li>Fixed: PHP notice when WooCommerce Memberships is active</li>
431  <li>Tweak: Entry Note emails now have paragraphs automatically added to them</li>
432  <li>Tweak: When the global &quot;Show Support Port&quot; setting is &quot;Hide&quot;, always hide; if set to &quot;Show&quot;, respect each user&#39;s Support Port display preference</li>
433  </ul>
434 
435  <p><strong>Developer Notes</strong></p>
436 
437  <ul>
438  <li>Migrated <code>is_approved</code> entry meta values; statuses are now managed by the <code>GravityView_Entry_Approval_Status</code> class
439 
440  <ul>
441  <li>&quot;Approved&quot; =&gt; <code>1</code>, use <code>GravityView_Entry_Approval_Status::APPROVED</code> constant</li>
442  <li>&quot;0&quot; =&gt; <code>2</code>, use <code>GravityView_Entry_Approval_Status::DISAPPROVED</code> constant</li>
443  <li>Use <code>$new_value = GravityView_Entry_Approval_Status::maybe_convert_status( $old_value )</code> to reliably translate meta values</li>
444  </ul></li>
445  <li>Added: <code>GVCommon::get_entry_id()</code> method to get the entry ID from a slug or ID</li>
446  <li>Added: <code>gravityview_go_back_url</code> filter to modify the link URL used for the single entry back-link in <code>gravityview_back_link()</code> function</li>
447  <li>Added: <code>gravityview/field/notes/wpautop_email</code> filter to disable <code>wpautop()</code> on Entry Note emails</li>
448  <li>Added: <code>$email_footer</code> to the <code>gravityview/field/notes/email_content</code> filter content</li>
449  <li>Modified: <code>note-add-note.php</code> template: added <code>current-url</code> hidden field</li>
450  <li>Modified: <code>list-single.php</code> template file: added <code>.gv-grid-col-1-3</code> CSS class to the <code>.gv-list-view-content-image</code> container</li>
451  <li>Fixed: Mask the Entry ID in the link to lightbox files</li>
452  </ul>
453 
454  <h3>1.17.4 on September 7, 2016</h3>
455 
456  <ul>
457  <li>Added: Support for editing <a href="https://gravitywiz.com/documentation/gp-unique-id/">Gravity Perks Unique ID</a> fields</li>
458  <li>Fixed: Issue searching and sorting fields with multiple inputs (like names)</li>
459  <li>Fixed: Restore Gravity Forms Quiz Addon details in the field picker</li>
460  </ul>
461 
462 
463  <p><strong>Developer Notes</strong></p>
464 
465  <ul>
466  <li>Added: <code>gravityview_get_directory_widgets()</code>, <code>gravityview_set_directory_widgets()</code> wrapper functions to get and set View widget configurations</li>
467  <li>Added: Second <code>$apply_filter</code> parameter to <code>GVCommon::get_directory_fields()</code> function to set whether or not to apply the <code>gravityview/configuration/fields</code> filter</li>
468  </ul>
469 
470  <h3>1.17.3 on August 31, 2016</h3>
471 
472  <ul>
473  <li>Added: Search Bar support for Gravity Forms Survey fields: filter by survey responses</li>
474  <li>Added: Search Bar support for Gravity Flow: search entries by the current Step, Step Status, or Workflow Status</li>
475  <li>Added: <code>[gvlogic]</code> and other shortcodes now can be used inside Email field settings content</li>
476  <li>Added: Support for embedding Views in the front page of a site; the <a href="https://github.com/gravityview/gravityview-front-page-views">GravityView - Allow Front Page Views plugin</a> is no longer required</li>
477  <li>Tweak: In Edit View, holding down the option (or alt) key while switching forms allows you to change forms without resetting field configurations - this is useful if you want to switch between duplicate forms</li>
478  <li>Fixed: Restored correct Gravity Flow status and workflow values</li>
479  <li>Fixed: Conflict when editing an entry in Gravity Flow</li>
480  <li>Fixed: Tooltip title text of the field and widget "gear" icon</li>
481  <li>Changed the plugin author from "Katz Web Services, Inc." to "GravityView" - it seemed like it was time!</li>
482  </ul>
483 
484 
485  <p><strong>Developer Notes</strong></p>
486 
487  <ul>
488  <li>Modified: <code>gravityview_get_forms()</code> function and <code>GVCommon::get_forms()</code> method to be compatible with <code>GFAPI::get_forms()</code>. Now accepts <code>$active</code> and <code>$trash</code> arguments, as well as returning all form data (not just <code>id</code> and <code>title</code> keys)</li>
489  <li>Modified: <code>template/fields/post_image.php</code> file to use <code>gravityview_get_link()</code> to generate the anchor link</li>
490  <li>Modified: <code>rel="noopener noreferrer"</code> now added to all links generated using <code>gravityview_get_link()</code> with <code>target="_blank"</code>. This fixes a generic security issue (not specific to GravityView) when displaying links to submitted websites and "Open link in new window" is checked - <a href="https://dev.to/ben/the-targetblank-vulnerability-by-example">read more about it here</a></li>
491  <li>Modified: Don't convert underscores to periods if not numeric in <code>GravityView_Widget_Search::prepare_field_filter()</code> - this fixes searching entry meta</li>
492  <li>Modified: Added third <code>gravityview_search_field_label</code> parameter: <code>$field</code> - it's the field configuration array passed by the Search Bar</li>
493  <li>Modified: HTML tags are now stripped from Email field body and subject content</li>
494  <li>Modified: Moved <code>GravityView_Admin_View_Item</code>, <code>GravityView_Admin_View_Field</code>, and <code>GravityView_Admin_View_Widget</code> to their own files</li>
495  <li>Added: Deprecation notices for methods that haven't been used since Version 1.2!</li>
496  </ul>
497 
498 
499  <h3>1.17.2 on August 9, 2016</h3>
500 
501  <ul>
502  <li>Fixed: "Start Fresh" fails when there are no pre-existing forms in Gravity Forms</li>
503  <li>Added: Support for embedding Views in Ultimate Member profile tabs</li>
504  <li>Fixed: File Upload fields potentially displaying PHP warnings</li>
505  <li>Fixed: Check plugin and theme existence before loading hooks</li>
506  <li>Fixed: "Hide empty fields" not working when "Make Phone Number Clickable" is checked for Phone fields</li>
507  <li>Fixed: Potential PHP warning when adding Password fields in Edit View</li>
508  <li>Fixed: Dutch (Netherlands) <code>nl_NL</code> translation file fixed</li>
509  <li>Fixed: Divi theme shortcode buttons and modal form added to Edit View screen</li>
510  <li>Fixed: Possible for Approve Entries checkbox to use the wrong Form ID</li>
511  <li>Fixed: Search issues with special characters
512 
513  <ul>
514  <li>Searches that contained ampersands <code>&amp;</code> were not working</li>
515  <li>Searches containing plus signs <code>+</code> were not working</li>
516  <li>The "Select" Search Bar input type would not show the active search if search term contained an <code>&amp;</code></li>
517  </ul>
518  </li>
519  <li>Fixed: Multisite issue: when Users are logged-in but not added to any sites, they aren't able to see View content</li>
520  <li>Fixed: Never show GravityView Toolbar menu to users who aren't able to edit Views, Forms, or Entries</li>
521  <li>Fixed: Allow passing <code>post_id</code> in <code>[gravityview]</code> shortcode</li>
522  <li>Tweak: Use system fonts instead of Open Sans in the admin</li>
523  <li>Modified: The default setting for "No-Conflict Mode" is now "On". GravityView <em>should look good</em> on your site!</li>
524  </ul>
525 
526 
527  <p><strong>Developer Notes:</strong></p>
528 
529  <ul>
530  <li>Added: <code>gravityview_view_saved</code> action, triggered after a View has been saved in the admin</li>
531  <li>Modified: Changed the Phone field template to use <code>gravityview_get_link()</code> to generate the anchor tag</li>
532  <li>Added: <code>gravityview/common/get_entry_id_from_slug/form_id</code> filter to modify the form ID used to generate entry slugs, in order to avoid hash collisions with data from other forms</li>
533  </ul>
534 
535  <h3>1.17.1 on June 27</h3>
536 
537  <ul>
538  <li>Fixed: Entry approval with Gravity Forms 2.0
539 
540  <ul>
541  <li>Added: Approved/Disapproved filters to Gravity Forms "Entries" page</li>
542  <li>Fixed: Bulk Approve/Disapprove</li>
543  <li>Fixed: Approve column and Bulk Actions not visible on Gravity Forms Entries page</li>
544  <li>Tweak: Improved speed of approving/disapproving entries</li>
545  </ul>
546  </li>
547  <li>Fixed: "Reply To" reference fixed in <code>GVCommon::send_email()</code> function</li>
548  <li>Added: Improved logging for creation of Custom Slug hash ids</li>
549  <li>Translations updated:
550 
551  <ul>
552  <li>Updated Chinese translation by <a href="https://www.transifex.com/user/profile/michaeledi/">@michaeledi</a></li>
553  <li>Updated Persian translation by <a href="https://www.transifex.com/user/profile/azadmojtaba/">@azadmojtaba</a></li>
554  </ul>
555  </li>
556  </ul>
557 
558  <h3>1.17 on June 14</h3>
559 
560  <ul>
561  <li>Added: Entry Notes field
562 
563  <ul>
564  <li>Add and delete Entry Notes from the frontend</li>
565  <li>Allows users to email Notes when they are added</li>
566  <li>Display notes to logged-out users</li>
567  <li>New <a href="http://docs.gravityview.co/article/311-gravityview-capabilities">user capabilities</a> to limit access (<code>gravityview_add_entry_notes</code>, <code>gravityview_view_entry_notes</code>, <code>gravityview_delete_entry_notes</code>, <code>gravityview_email_entry_notes</code>)</li>
568  </ul>
569  </li>
570  <li>Added: Merge Tag modifiers - now set a maximum length of content, and automatically add paragraphs to Merge Tags. <a href="https://docs.gravityview.co/article/350-merge-tag-modifiers">Read how to use the new Merge Tag modifiers</a>.
571 
572  <ul>
573  <li><code>:maxwords:{number}</code> - Limit output to a set number of words</li>
574  <li><code>:wpautop</code> - Automatically add line breaks and paragraphs to content</li>
575  <li><code>:timestamp</code> - Convert dates into timestamp values</li>
576  </ul>
577  </li>
578  <li>Modified: Major changes to the Search Bar design</li>
579  <li>Added: Field setting to display the input value, label, or check mark, depending on field type. Currently supported: Checkbox, Radio, Drop Down fields.</li>
580  <li>Added: RTL ("right to left") language support in default and List template styles (Added: <code>gv-default-styles-rtl.css</code> and <code>list-view-rtl.css</code> stylesheets)</li>
581  <li>Added: Option to make Phone numbers click-to-call</li>
582  <li>Added: GravityView parent menu to Toolbar; now you can edit the form connected to a View directly from the View
583 
584  <ul>
585  <li>Changed: Don't show Edit View in the Admin Bar; it's now under the GravityView parent menu</li>
586  <li>Fixed: Don't remove Edit Post/Page admin bar menu item</li>
587  </ul>
588  </li>
589  <li>Added: Support for <a href="https://gravityflow.io">Gravity Flow</a> "Workflow Step" and Workflow "Final Status" fields</li>
590  <li>Added: Support for Password fields. You probably shouldn't display them (in most cases!) but now you <em>can</em></li>
591  <li>Modified: When deleting/trashing entries with GravityView, the connected posts created by Gravity Forms will now also be deleted/trashed</li>
592  <li>Edit Entry improvements
593 
594  <ul>
595  <li>Added: Edit Entry now fully supports <a href="https://www.gravityhelp.com/documentation/article/create-content-template/">Gravity Forms Content Templates</a></li>
596  <li>Fixed: Edit Entry didn't pre-populate List inputs if they were part of a Post Custom Field field type</li>
597  <li>Fixed: Updating Post Image fields in Edit Entry when the field is not set to "Featured Image" in Gravity Forms</li>
598  <li>Fixed: "Rank" and "Ratings" Survey Field types not being displayed properly in Edit Entry</li>
599  <li>Fixed: Signature field not displaying existing signatures in Edit Entry</li>
600  <li>Fixed: Post Category fields will now update to show the Post's current categories</li>
601  <li>Fixed: Allow multiple Post Category fields in Edit Entry</li>
602  <li>Fixed: PHP warning caused when a form had "Anti-spam honeypot" enabled</li>
603  </ul>
604  </li>
605  <li>Fixed: When inserting a GravityView shortcode using the "Add View" button, the form would flow over the window</li>
606  <li>Fixed: <a href="https://churchthemes.com">Church Themes</a> theme compatibility</li>
607  <li>Fixed: Inactive and expired licenses were being shown the wrong error message</li>
608  <li>Fixed: Moving domains would prevent GravityView from updating</li>
609  <li>Fixed: When using the User Opt-in field together with the View setting "Show Only Approved Entries", entries weren't showing</li>
610  <li>Fixed: If a label is set for Search Bar "Link" fields, use the label. Otherwise, "Show only:" will be used</li>
611  <li>Fixed: Showing the first column of a List field was displaying all the field's columns</li>
612  </ul>
613 
614 
615  <p><strong>Developer Notes</strong></p>
616 
617  <ul>
618  <li>Templates changed:
619 
620  <ul>
621  <li><code>list-single.php</code> and <code>list-body.php</code>: changed <code>#gv_list_{entry_id}</code> to <code>#gv_list_{entry slug}</code>. If using custom entry slugs, the ID attribute will change. Otherwise, no change.</li>
622  <li><code>list-body.php</code>: Removed <code>id</code> attribute from entry title <code>&lt;h3&gt;</code></li>
623  </ul>
624  </li>
625  <li>Added: Override GravityView CSS files by copying them to a template's <code>/gravityview/css/</code> sub-directory</li>
626  <li>Added: <code>gravityview_css_url()</code> function to check for overriding CSS files in templates</li>
627  <li>Added: <code>gravityview_use_legacy_search_style</code> filter; return <code>true</code> to use previous Search Bar stylesheet</li>
628  <li>Major CSS changes for the Search Bar.
629 
630  <ul>
631  <li>Search inputs <code>&lt;div&gt;</code>s now have additional CSS classes based on the input type: <code>.gv-search-field-{input_type}</code> where <code>{input_type}</code> is:
632  <code>search_all</code> (search everything text box), <code>link</code>, <code>date</code>, <code>checkbox</code> (list of checkboxes), <code>single_checkbox</code>, <code>text</code>, <code>radio</code>, <code>select</code>,
633  <code>multiselect</code>, <code>date_range</code>, <code>entry_id</code>, <code>entry_date</code></li>
634  <li>Added <code>gv-search-date-range</code> CSS class to containers that have date ranges</li>
635  <li>Moved <code>gv-search-box-links</code> CSS class from the <code>&lt;p&gt;</code> to the <code>&lt;div&gt;</code> container</li>
636  <li>Fixed: <code>&lt;label&gt;</code> <code>for</code> attribute was missing quotes</li>
637  </ul>
638  </li>
639  <li>Added:
640 
641  <ul>
642  <li><code>gravityview/edit_entry/form_fields</code> filter to modify the fields displayed in Edit Entry form</li>
643  <li><code>gravityview/edit_entry/field_value_{field_type}</code> filter to change the value of an Edit Entry field for a specific field type</li>
644  <li><code>gravityview/edit-entry/render/before</code> action, triggered before the Edit Entry form is rendered</li>
645  <li><code>gravityview/edit-entry/render/after</code> action, triggered after the Edit Entry form is rendered</li>
646  </ul>
647  </li>
648  <li>Fixed: PHP Warning for certain hosting <code>open_basedir</code> configurations</li>
649  <li>Added: <code>gravityview/delete-entry/delete-connected-post</code> Filter to modify behavior when entry is deleted. Return false to prevent posts from being deleted or trashed when connected entries are deleted or trashed. See <code>gravityview/delete-entry/mode</code> filter to modify the default behavior, which is "delete".</li>
650  <li>Added: <code>gravityview/edit_entry/post_content/append_categories</code> filter to modify whether post categories should be added to or replaced?</li>
651  <li>Added: <code>gravityview/common/get_form_fields</code> filter to modify fields used in the "Add Field" selector, View "Filters" dropdowns, and Search Bar</li>
652  <li>Added: <code>gravityview/search/searchable_fields</code> filter to modify fields used in the Search Bar field dropdown</li>
653  <li>Added: <code>GVCommon::send_email()</code>, a public alias of <code>GFCommon::send_email()</code></li>
654  <li>Added: <code>GravityView_Field_Notes</code> class, with lots of filters to modify output</li>
655  <li>Added: <code>$field_value</code> parameter to <code>gravityview_get_field_label()</code> function and <code>GVCommon::get_field_label()</code> method</li>
656  <li>Added: <code>$force</code> parameter to <code>GravityView_Plugin::frontend_actions()</code> to force including files</li>
657  <li>Modified: Added second parameter <code>$entry</code> to <code>gravityview/delete-entry/trashed</code> and <code>gravityview/delete-entry/deleted</code> actions</li>
658  <li>Fixed: An image with no <code>src</code> output a broken HTML <code>&lt;img&gt;</code> tag</li>
659  </ul>
660 
661  <p style="text-align: center">
662  <a href="https://gravityview.co/changelog/" class="aligncenter button button-secondary button-hero" style="margin: 0 auto; display: inline-block;">View All Changes</a>
663  </p>
664 
665  <div class="clear"></div>
666  </div>
667 
668  </div>
669  <?php
670  }
671 
672  /**
673  * Render Credits Screen
674  *
675  * @access public
676  * @since 1.0
677  * @return void
678  */
679  public function credits_screen() { ?>
680  <div class="wrap about-wrap">
681 
682  <?php $this->tabs(); ?>
683  <p class="about-description"><?php _e( 'GravityView is brought to you by:', 'gravityview' ); ?></p>
684 
685  <div class="feature-section col two-col">
686 
687  <div class="col">
688  <h3>Zack Katz</h3>
689  <h4 style="font-weight:0; margin-top:0">Project Lead &amp; Developer</h4>
690  <p></p>
691  <p><img style="float:left; margin: 0 15px 10px 0;" src="<?php echo plugins_url( 'assets/images/zack.jpg', GRAVITYVIEW_FILE ); ?>" width="94" height="94" />Zack has been developing integrations with Gravity Forms since 2009. He is the President of Katz Web Services and lives with his wife (and cat) in Denver, Colorado.</p>
692  <p><a href="https://katz.co">View Zack&rsquo;s website</a></p>
693  </div>
694 
695  <div class="col last-feature">
696  <h3>Rafael Ehlers</h3>
697  <h4 style="font-weight:0; margin-top:0">Project Manager, Support Lead &amp; Customer Advocate</h4>
698  <p><img style="margin: 0 15px 10px 0;" class="alignleft avatar" src="<?php echo plugins_url( 'assets/images/rafael.jpg', GRAVITYVIEW_FILE ); ?>" width="94" height="94" />Rafael helps guide GravityView development priorities and keep us on track. He&rsquo;s the face of our customer support and helps customers get the most out of the product. Rafael hails from Porto Alegre, Brazil.</p>
699  <p><a href="http://heropress.com/essays/journey-resilience/">View Rafael&rsquo;s WordPress Journey</a></p>
700  </div>
701  </div>
702 
703  <hr class="clear" />
704 
705  <div class="feature-section">
706  <div>
707  <h2><?php esc_attr_e( 'Contributors', 'gravityview' ); ?></h2>
708 
709  <ul class="wp-people-group">
710  <li class="wp-person">Core &amp; Extension development by <a href="http://tinygod.pt" class="block">Luis Godinho</a></li>
711  <li class="wp-person">Bengali translation by <a href="https://www.transifex.com/accounts/profile/tareqhi/">@tareqhi</a></li>
712  <li class="wp-person">German translation by <a href="https://www.transifex.com/user/profile/hubert123456/">@hubert123456</a>, <a href="https://www.transifex.com/accounts/profile/seschwarz/">@seschwarz</a>, <a href="https://www.transifex.com/accounts/profile/abdmc/">@abdmc</a>, <a href="https://www.transifex.com/accounts/profile/deckerweb/">@deckerweb</a></li>
713  <li class="wp-person">Turkish translation by <a href="https://www.transifex.com/accounts/profile/suhakaralar/">@suhakaralar</a></li>
714  <li class="wp-person">Dutch translation by <a href="https://www.transifex.com/accounts/profile/leooosterloo/">@leooosterloo</a>, <a href="https://www.transifex.com/accounts/profile/Weergeven/">@Weergeven</a>, and <a href="https://www.transifex.com/accounts/profile/erikvanbeek/">@erikvanbeek</a></li>
715  <li class="wp-person">Hungarian translation by <a href="https://www.transifex.com/accounts/profile/dbalage/">@dbalage</a> and <a href="https://www.transifex.com/accounts/profile/Darqebus/">@Darqebus</a></li>
716  <li class="wp-person">Italian translation by <a href="https://www.transifex.com/accounts/profile/Lurtz/">@Lurtz</a> and <a href="https://www.transifex.com/accounts/profile/ClaraDiGennaro/">@ClaraDiGennaro</a></li>
717  <li class="wp-person">French translation by <a href="https://www.transifex.com/accounts/profile/franckt/">@franckt</a> and <a href="https://www.transifex.com/accounts/profile/Newbdev/">@Newbdev</a></li>
718  <li class="wp-person">Portuguese translation by <a href="https://www.transifex.com/accounts/profile/luistinygod/">@luistinygod</a>, <a href="https://www.transifex.com/accounts/profile/marlosvinicius.info/">@marlosvinicius</a>, and <a href="https://www.transifex.com/user/profile/rafaehlers/">@rafaehlers</a></li>
719  <li class="wp-person">Romanian translation by <a href="https://www.transifex.com/accounts/profile/ArianServ/">@ArianServ</a></li>
720  <li class="wp-person">Finnish translation by <a href="https://www.transifex.com/accounts/profile/harjuja/">@harjuja</a></li>
721  <li class="wp-person">Spanish translation by <a href="https://www.transifex.com/accounts/profile/jorgepelaez/">@jorgepelaez</a>, <a href="https://www.transifex.com/accounts/profile/luisdiazvenero/">@luisdiazvenero</a>, <a href="https://www.transifex.com/accounts/profile/josemv/">@josemv</a>, <a href="https://www.transifex.com/accounts/profile/janolima/">@janolima</a> and <a href="https://www.transifex.com/accounts/profile/matrixmercury/">@matrixmercury</a></li>
722  <li class="wp-person">Swedish translation by <a href="https://www.transifex.com/accounts/profile/adamrehal/">@adamrehal</a></li>
723  <li class="wp-person">Indonesian translation by <a href="https://www.transifex.com/accounts/profile/sariyanta/">@sariyanta</a></li>
724  <li class="wp-person">Norwegian translation by <a href="https://www.transifex.com/accounts/profile/aleksanderespegard/">@aleksanderespegard</a></li>
725  <li class="wp-person">Danish translation by <a href="https://www.transifex.com/accounts/profile/jaegerbo/">@jaegerbo</a></li>
726  <li class="wp-person">Chinese translation by <a href="https://www.transifex.com/user/profile/michaeledi/">@michaeledi</a></li>
727  <li class="wp-person">Persian translation by <a href="https://www.transifex.com/user/profile/azadmojtaba/">@azadmojtaba</a></li>
728  <li class="wp-person">Russian translation by <a href="https://www.transifex.com/user/profile/gkovaleff/">@gkovaleff</a></li>
729  <li class="wp-person">Code contributions by <a href="https://github.com/ryanduff">@ryanduff</a>, <a href="https://github.com/dmlinn">@dmlinn</a>, and <a href="https://github.com/mgratch">@mgratch</a></li>
730  </ul>
731 
732  <h4><?php esc_attr_e( 'Want to contribute?', 'gravityview' ); ?></h4>
733  <p><?php echo sprintf( esc_attr__( 'If you want to contribute to the code, %syou can on Github%s. If your contributions are accepted, you will be thanked here.', 'gravityview'), '<a href="https://github.com/katzwebservices/GravityView">', '</a>' ); ?></p>
734  </div>
735  </div>
736 
737  <hr class="clear" />
738 
739  <div class="changelog">
740 
741  <h4>Thanks to the following open-source software:</h4>
742 
743  <ul>
744  <li><a href="http://datatables.net/">DataTables</a> - amazing tool for table data display. Many thanks!</li>
745  <li><a href="https://github.com/10up/flexibility">Flexibility</a> - Adds support for CSS flexbox to Internet Explorer 8 &amp; 9</li>
746  <li><a href="https://github.com/GaryJones/Gamajo-Template-Loader">Gamajo Template Loader</a> - makes it easy to load template files with user overrides</li>
747  <li><a href="https://github.com/carhartl/jquery-cookie">jQuery Cookie plugin</a> - Access and store cookie values with jQuery</li>
748  <li><a href="https://katz.si/gf">Gravity Forms</a> - If Gravity Forms weren't such a great plugin, GravityView wouldn't exist!</li>
749  <li>GravityView uses icons made by Freepik, Adam Whitcroft, Amit Jakhu, Zurb, Scott de Jonge, Yannick, Picol, Icomoon, TutsPlus, Dave Gandy, SimpleIcon from <a href="http://www.flaticon.com" title="Flaticon">www.flaticon.com</a></li>
750  <li>GravityView uses free vector art by <a href="http://www.vecteezy.com">vecteezy.com</a></li>
751  <li><a href="https://github.com/jnicol/standalone-phpenkoder">PHPEnkoder</a> script encodes the email addresses.</li>
752  <li>The Duplicate View functionality is based on the excellent <a href="http://lopo.it/duplicate-post-plugin/">Duplicate Post plugin</a> by Enrico Battocchi</li>
753  <li>Browser testing by <a href="https://www.browserstack.com">BrowserStack</a></li>
754  <li><a href="https://easydigitaldownloads.com/downloads/software-licensing/">Easy Digital Downloads</a> makes auto-upgrades possible</li>
755  </ul>
756 
757  </div>
758 
759  </div>
760  <?php
761  }
762 
763 
764  /**
765  * Sends user to the Welcome page on first activation of GravityView as well as each
766  * time GravityView is upgraded to a new version
767  *
768  * @access public
769  * @since 1.0
770  * @return void
771  */
772  public function welcome() {
773  global $plugin_page;
774 
775  // Bail if we're just editing the plugin
776  if( $plugin_page === 'plugin-editor.php' ) { return; }
777 
778  // Bail if no activation redirect
779  if ( ! get_transient( '_gv_activation_redirect' ) ) { return; }
780 
781  // Delete the redirect transient
782  delete_transient( '_gv_activation_redirect' );
783 
784  $upgrade = get_option( 'gv_version_upgraded_from' );
785 
786  // Don't do anything if they've already seen the new version info
787  if( $upgrade === GravityView_Plugin::version ) {
788  return;
789  }
790 
791  // Add "Upgraded From" Option
792  update_option( 'gv_version_upgraded_from', GravityView_Plugin::version );
793 
794  // Bail if activating from network, or bulk
795  if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) { return; }
796 
797  // First time install
798  if( ! $upgrade ) {
799  wp_safe_redirect( admin_url( 'edit.php?post_type=gravityview&page=gv-getting-started' ) ); exit;
800  }
801  // Update
802  else {
803  wp_safe_redirect( admin_url( 'edit.php?post_type=gravityview&page=gv-changelog' ) ); exit;
804  }
805  }
806 }
807 new GravityView_Welcome;
Generic class for generating image tag.
static get_form_from_entry_id($entry_slug)
Get the form array for an entry based only on the entry ID.
includes
admin_head()
Hide Individual Dashboard Pages.
if(!GVCommon::has_cap(array( 'gravityview_view_entry_notes', 'gravityview_add_entry_notes', 'gravityview_delete_entry_notes'))&&!$show_notes_logged_out)
Definition: notes.php:14
welcome()
Sends user to the Welcome page on first activation of GravityView as well as each time GravityView is...
scale description ul
getting_started_screen()
Render About Screen.
__construct()
Get things started.
admin_menus()
Register the Dashboard Pages which are later hidden but these pages are used to render the Welcome pa...
GravityView_Welcome Class.
getContextFields($context= '')
Get the fields for a specific context.
gravityview_get_floaty($height=87)
Get an image of our intrepid explorer friend.
static generate_notice($notice, $class= '', $cap= '', $object_id=null)
Display updated/error notice.
get_gravityview($view_id= '', $atts=array())
Theme function to get a GravityView view.
$field_id
Definition: time.php:17
gravityview()
"GRAVITYVIEW_DIR" "../" Require core
is_dashboard_page($is_page=false, $hook=NULL)
Is this page a GV dashboard page?
gv form field wrapper
tabs()
Navigation tabs.