| 1 |  |  | <?php | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  | /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  |  * GravityView Edit Entry - render frontend | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  |  * @package   GravityView | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |  * @license   GPL2+ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  |  * @author    Katz Web Services, Inc. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  |  * @link      http://gravityview.co | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |  * @copyright Copyright 2014, Katz Web Services, Inc. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  | if ( ! defined( 'WPINC' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |     die; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  | } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  | class GravityView_Edit_Entry_Render { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  |      * @var GravityView_Edit_Entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |     protected $loader; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  | 	 * @var string String used to generate unique nonce for the entry/form/view combination. Allows access to edit page. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |     static $nonce_key; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  | 	 * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  | 	 * @var string String used for check valid edit entry form submission. Allows saving edit form values. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  | 	private static $nonce_field = 'is_gv_edit_entry'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  | 	 * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  | 	 * @var bool Whether to allow save and continue functionality | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  | 	private static $supports_save_and_continue = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 |  |  |      * Gravity Forms entry array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |     public $entry; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  | 	 * Gravity Forms entry array (it won't get changed during this class lifecycle) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  | 	 * @since 1.17.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  | 	 * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  | 	private static $original_entry = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |      * Gravity Forms form array (GravityView modifies the content through this class lifecycle) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  | 	public $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  |      * Gravity Forms form array (it won't get changed during this class lifecycle) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 |  |  |      * @since 1.16.2.1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 |  |  |     private static $original_form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 |  |  |      * Gravity Forms form array after the form validation process | 
            
                                                                                                            
                            
            
                                    
            
            
                | 71 |  |  |      * @since 1.13 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 72 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 73 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 74 |  |  | 	public $form_after_validation = null; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 75 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 76 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 77 |  |  |      * Hold an array of GF field objects that have calculation rules | 
            
                                                                                                            
                            
            
                                    
            
            
                | 78 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 79 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 80 |  |  | 	public $fields_with_calculation = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 81 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 82 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 83 |  |  |      * Hold an array of GF field objects with type 'total' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 84 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 85 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 86 |  |  | 	public $total_fields = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 87 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 88 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 89 |  |  |      * Gravity Forms form id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 90 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 91 |  |  |      * @var int | 
            
                                                                                                            
                            
            
                                    
            
            
                | 92 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 93 |  |  | 	public $form_id; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 94 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 95 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 96 |  |  |      * ID of the current view | 
            
                                                                                                            
                            
            
                                    
            
            
                | 97 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 98 |  |  |      * @var int | 
            
                                                                                                            
                            
            
                                    
            
            
                | 99 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 100 |  |  | 	public $view_id; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 101 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 102 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 103 |  |  |      * Updated entry is valid (GF Validation object) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 104 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 105 |  |  |      * @var array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 106 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 107 |  |  | 	public $is_valid = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 108 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 109 |  |  |     function __construct( GravityView_Edit_Entry $loader ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                        
                            
            
                                    
            
            
                | 110 |  |  |         $this->loader = $loader; | 
            
                                                                        
                            
            
                                    
            
            
                | 111 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 112 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 113 |  |  |     function load() { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 114 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 115 |  |  |         /** @define "GRAVITYVIEW_DIR" "../../../" */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 116 |  |  |         include_once( GRAVITYVIEW_DIR .'includes/class-admin-approve-entries.php' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 117 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 118 |  |  |         // Don't display an embedded form when editing an entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 119 |  |  |         add_action( 'wp_head', array( $this, 'prevent_render_form' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 120 |  |  |         add_action( 'wp_footer', array( $this, 'prevent_render_form' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 121 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 122 |  |  |         // Stop Gravity Forms processing what is ours! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 123 |  |  |         add_filter( 'wp', array( $this, 'prevent_maybe_process_form'), 8 ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 124 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 125 |  |  |         add_filter( 'gravityview_is_edit_entry', array( $this, 'is_edit_entry') ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 126 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 127 |  |  |         add_action( 'gravityview_edit_entry', array( $this, 'init' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 128 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 129 |  |  |         // Disable conditional logic if needed (since 1.9) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 130 |  |  |         add_filter( 'gform_has_conditional_logic', array( $this, 'manage_conditional_logic' ), 10, 2 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 131 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 132 |  |  |         // Make sure GF doesn't validate max files (since 1.9) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 133 |  |  |         add_filter( 'gform_plupload_settings', array( $this, 'modify_fileupload_settings' ), 10, 3 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 134 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 135 |  |  |         // Add fields expected by GFFormDisplay::validate() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 136 |  |  |         add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation') ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 137 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 138 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 139 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 140 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 141 |  |  |      * Don't show any forms embedded on a page when GravityView is in Edit Entry mode | 
            
                                                                                                            
                            
            
                                    
            
            
                | 142 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 143 |  |  |      * Adds a `__return_empty_string` filter on the Gravity Forms shortcode on the `wp_head` action | 
            
                                                                                                            
                            
            
                                    
            
            
                | 144 |  |  |      * And then removes it on the `wp_footer` action | 
            
                                                                                                            
                            
            
                                    
            
            
                | 145 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 146 |  |  |      * @since 1.16.1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 147 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 148 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 149 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 150 |  |  |     public function prevent_render_form() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 151 |  |  |         if( $this->is_edit_entry() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 152 |  |  |             if( 'wp_head' === current_filter() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 153 |  |  |                 add_filter( 'gform_shortcode_form', '__return_empty_string' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 154 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 155 |  |  |                 remove_filter( 'gform_shortcode_form', '__return_empty_string' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 156 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 157 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 158 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 159 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 160 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 161 |  |  |      * Because we're mimicking being a front-end Gravity Forms form while using a Gravity Forms | 
            
                                                                                                            
                            
            
                                    
            
            
                | 162 |  |  |      * backend form, we need to prevent them from saving twice. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 163 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 164 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 165 |  |  |     public function prevent_maybe_process_form() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 166 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 167 |  |  |         do_action('gravityview_log_debug', 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 168 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 169 |  |  |         if( $this->is_edit_entry_submission() && $this->verify_nonce() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 170 |  |  |             remove_action( 'wp',  array( 'RGForms', 'maybe_process_form'), 9 ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 171 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 172 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 173 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 174 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 175 |  |  |      * Is the current page an Edit Entry page? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 176 |  |  |      * @return boolean | 
            
                                                                                                            
                            
            
                                    
            
            
                | 177 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 178 |  |  |     public function is_edit_entry() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 179 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 180 |  |  |         $is_edit_entry = GravityView_frontend::is_single_entry() && ! empty( $_GET['edit'] ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 181 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 182 |  |  |         return ( $is_edit_entry || $this->is_edit_entry_submission() ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 183 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 184 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 185 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 186 |  |  | 	 * Is the current page an Edit Entry page? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 187 |  |  | 	 * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 188 |  |  | 	 * @return boolean | 
            
                                                                                                            
                            
            
                                    
            
            
                | 189 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 190 |  |  | 	public function is_edit_entry_submission() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 191 |  |  | 		return !empty( $_POST[ self::$nonce_field ] ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 192 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 193 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 194 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 195 |  |  |      * When Edit entry view is requested setup the vars | 
            
                                                                                                            
                            
            
                                    
            
            
                | 196 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 197 |  |  |     private function setup_vars() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 198 |  |  |         $gravityview_view = GravityView_View::getInstance(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 199 |  |  |  | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 200 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 201 |  |  |         $entries = $gravityview_view->getEntries(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 202 |  |  | 	    self::$original_entry = $entries[0]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 203 |  |  | 	    $this->entry = $entries[0]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 204 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 205 |  |  |         self::$original_form = $gravityview_view->getForm(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 206 |  |  |         $this->form = $gravityview_view->getForm(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 207 |  |  |         $this->form_id = $gravityview_view->getFormId(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 208 |  |  |         $this->view_id = $gravityview_view->getViewId(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 209 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 210 |  |  |         self::$nonce_key = GravityView_Edit_Entry::get_nonce_key( $this->view_id, $this->form_id, $this->entry['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 211 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 212 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 213 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 214 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 215 |  |  |      * Load required files and trigger edit flow | 
            
                                                                                                            
                            
            
                                    
            
            
                | 216 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 217 |  |  |      * Run when the is_edit_entry returns true. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 218 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 219 |  |  |      * @param GravityView_View_Data $gv_data GravityView Data object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 220 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 221 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 222 |  |  |     public function init( $gv_data ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 223 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 224 |  |  |         require_once( GFCommon::get_base_path() . '/form_display.php' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 225 |  |  |         require_once( GFCommon::get_base_path() . '/entry_detail.php' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 226 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 227 |  |  |         $this->setup_vars(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 228 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 229 |  |  |         // Multiple Views embedded, don't proceed if nonce fails | 
            
                                                                                                            
                            
            
                                    
            
            
                | 230 |  |  |         if( $gv_data->has_multiple_views() && ! wp_verify_nonce( $_GET['edit'], self::$nonce_key ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 231 |  |  |             do_action('gravityview_log_error', __METHOD__ . ': Nonce validation failed for the Edit Entry request; returning' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 232 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 233 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 234 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 235 |  |  |         // Sorry, you're not allowed here. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 236 |  |  |         if( false === $this->user_can_edit_entry( true ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 237 |  |  |             do_action('gravityview_log_error', __METHOD__ . ': User is not allowed to edit this entry; returning', $this->entry ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 238 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 239 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 240 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 241 |  |  |         $this->print_scripts(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 242 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 243 |  |  |         $this->process_save(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 244 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 245 |  |  |         $this->edit_entry_form(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 246 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 247 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 248 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 249 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 250 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 251 |  |  |      * Force Gravity Forms to output scripts as if it were in the admin | 
            
                                                                                                            
                            
            
                                    
            
            
                | 252 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 253 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 254 |  |  |     private function print_scripts() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 255 |  |  |         $gravityview_view = GravityView_View::getInstance(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 256 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 257 |  |  |         wp_register_script( 'gform_gravityforms', GFCommon::get_base_url().'/js/gravityforms.js', array( 'jquery', 'gform_json', 'gform_placeholder', 'sack', 'plupload-all', 'gravityview-fe-view' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 258 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 259 |  |  |         GFFormDisplay::enqueue_form_scripts($gravityview_view->getForm(), false); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 260 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 261 |  |  |         // Sack is required for images | 
            
                                                                                                            
                            
            
                                    
            
            
                | 262 |  |  |         wp_print_scripts( array( 'sack', 'gform_gravityforms' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 263 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 264 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 265 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 266 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 267 |  |  |      * Process edit entry form save | 
            
                                                                                                            
                            
            
                                    
            
            
                | 268 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 269 |  |  |     private function process_save() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 270 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 271 |  |  |         if( empty( $_POST ) || ! isset( $_POST['lid'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 272 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 273 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 274 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 275 |  |  |         // Make sure the entry, view, and form IDs are all correct | 
            
                                                                                                            
                            
            
                                    
            
            
                | 276 |  |  |         $valid = $this->verify_nonce(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 277 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 278 |  |  |         if( !$valid ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 279 |  |  |             do_action('gravityview_log_error', __METHOD__ . ' Nonce validation failed.' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 280 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 281 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 282 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 283 |  |  |         if( $this->entry['id'] !== $_POST['lid'] ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 284 |  |  |             do_action('gravityview_log_error', __METHOD__ . ' Entry ID did not match posted entry ID.' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 285 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 286 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 287 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 288 |  |  |         do_action('gravityview_log_debug', __METHOD__ . ': $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 289 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 290 |  |  |         $this->process_save_process_files( $this->form_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 291 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 292 |  |  |         $this->validate(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 293 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 294 |  |  |         if( $this->is_valid ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 295 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 296 |  |  |             do_action('gravityview_log_debug', __METHOD__ . ': Submission is valid.' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 297 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 298 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 299 |  |  |              * @hack This step is needed to unset the adminOnly from form fields, to add the calculation fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 300 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 301 |  |  |             $form = $this->form_prepare_for_save(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 302 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 303 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 304 |  |  |              * @hack to avoid the capability validation of the method save_lead for GF 1.9+ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 305 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 306 |  |  |             unset( $_GET['page'] ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 307 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 308 |  |  |             $date_created = $this->entry['date_created']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 309 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 310 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 311 |  |  |              * @hack to force Gravity Forms to use $read_value_from_post in GFFormsModel::save_lead() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 312 |  |  |              * @since 1.17.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 313 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 314 |  |  |             unset( $this->entry['date_created'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 315 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 316 |  |  |             GFFormsModel::save_lead( $form, $this->entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 317 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 318 |  |  | 	        // Delete the values for hidden inputs | 
            
                                                                                                            
                            
            
                                    
            
            
                | 319 |  |  | 	        $this->unset_hidden_field_values(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 320 |  |  |              | 
            
                                                                                                            
                            
            
                                    
            
            
                | 321 |  |  |             $this->entry['date_created'] = $date_created; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 322 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 323 |  |  |             // Process calculation fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 324 |  |  |             $this->update_calculation_fields(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 325 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 326 |  |  |             // Perform actions normally performed after updating a lead | 
            
                                                                                                            
                            
            
                                    
            
            
                | 327 |  |  |             $this->after_update(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 328 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 329 |  |  | 	        /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 330 |  |  |              * Must be AFTER after_update()! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 331 |  |  |              * @see https://github.com/gravityview/GravityView/issues/764 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 332 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 333 |  |  |             $this->maybe_update_post_fields( $form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 334 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 335 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 336 |  |  |              * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 337 |  |  |              * @param array $form Gravity Forms form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 338 |  |  |              * @param string $entry_id Numeric ID of the entry that was updated | 
            
                                                                                                            
                            
            
                                    
            
            
                | 339 |  |  |              * @param GravityView_Edit_Entry_Render $this This object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 340 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 341 |  |  |             do_action( 'gravityview/edit_entry/after_update', $this->form, $this->entry['id'], $this ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 342 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 343 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 344 |  |  |             do_action('gravityview_log_error', __METHOD__ . ': Submission is NOT valid.', $this->entry ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 345 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 346 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 347 |  |  |     } // process_save | 
            
                                                                                                            
                            
            
                                    
            
            
                | 348 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 349 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 350 |  |  | 	 * Delete the value of fields hidden by conditional logic when the entry is edited | 
            
                                                                                                            
                            
            
                                    
            
            
                | 351 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 352 |  |  |      * @uses GFFormsModel::update_lead_field_value() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 353 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 354 |  |  |      * @since 1.17.4 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 355 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 356 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 357 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 358 |  |  |     private function unset_hidden_field_values() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 359 |  |  | 	    global $wpdb; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 360 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 361 |  |  | 	    $lead_detail_table      = GFFormsModel::get_lead_details_table_name(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 362 |  |  | 	    $current_fields   = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 363 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 364 |  |  | 	    foreach ( $this->entry as $input_id => $field_value ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 365 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 366 |  |  | 		    $field = RGFormsModel::get_field( $this->form, $input_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 367 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 368 |  |  | 		    // Reset fields that are hidden | 
            
                                                                                                            
                            
            
                                    
            
            
                | 369 |  |  | 		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 370 |  |  | 		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 371 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 372 |  |  | 		        // List fields are stored as empty arrays when empty | 
            
                                                                                                            
                            
            
                                    
            
            
                | 373 |  |  | 			    $empty_value = $this->is_field_json_encoded( $field ) ? '[]' : ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 374 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 375 |  |  | 			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 376 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 377 |  |  | 			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 378 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 379 |  |  | 			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 380 |  |  |                 // after submission | 
            
                                                                                                            
                            
            
                                    
            
            
                | 381 |  |  | 			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 382 |  |  | 			    $_POST[ $post_input_id ] = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 383 |  |  | 		    } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 384 |  |  | 	    } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 385 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 386 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 387 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 388 |  |  |      * Have GF handle file uploads | 
            
                                                                                                            
                            
            
                                    
            
            
                | 389 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 390 |  |  |      * Copy of code from GFFormDisplay::process_form() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 391 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 392 |  |  |      * @param int $form_id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 393 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 394 |  |  |     private function process_save_process_files( $form_id ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 395 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 396 |  |  |         //Loading files that have been uploaded to temp folder | 
            
                                                                                                            
                            
            
                                    
            
            
                | 397 |  |  |         $files = GFCommon::json_decode( stripslashes( RGForms::post( 'gform_uploaded_files' ) ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 398 |  |  |         if ( ! is_array( $files ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 399 |  |  |             $files = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 400 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 401 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 402 |  |  |         RGFormsModel::$uploaded_files[ $form_id ] = $files; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 403 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 404 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 405 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 406 |  |  |      * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView | 
            
                                                                                                            
                            
            
                                    
            
            
                | 407 |  |  |      * Late validation done on self::custom_validation | 
            
                                                                                                            
                            
            
                                    
            
            
                | 408 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 409 |  |  |      * @param $plupload_init array Plupload settings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 410 |  |  |      * @param $form_id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 411 |  |  |      * @param $instance | 
            
                                                                                                            
                            
            
                                    
            
            
                | 412 |  |  |      * @return mixed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 413 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 414 |  |  |     public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 415 |  |  |         if( ! $this->is_edit_entry() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 416 |  |  |             return $plupload_init; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 417 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 418 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 419 |  |  |         $plupload_init['gf_vars']['max_files'] = 0; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 420 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 421 |  |  |         return $plupload_init; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 422 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 423 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 424 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 425 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 426 |  |  |      * Unset adminOnly and convert field input key to string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 427 |  |  |      * @return array $form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 428 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 429 |  |  |     private function form_prepare_for_save() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 430 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 431 |  |  |         $form = $this->form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 432 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 433 |  |  | 	    /** @var GF_Field $field */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 434 |  |  |         foreach( $form['fields'] as $k => &$field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 435 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 436 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 437 |  |  |              * Remove the fields with calculation formulas before save to avoid conflicts with GF logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 438 |  |  |              * @since 1.16.3 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 439 |  |  |              * @var GF_Field $field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 440 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 441 |  |  |             if( $field->has_calculation() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 442 |  |  |                 unset( $form['fields'][ $k ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 443 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 444 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 445 |  |  |             $field->adminOnly = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 446 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 447 |  |  |             if( isset( $field->inputs ) && is_array( $field->inputs ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 448 |  |  |                 foreach( $field->inputs as $key => $input ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 449 |  |  |                     $field->inputs[ $key ][ 'id' ] = (string)$input['id']; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 450 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 451 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 452 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 453 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 454 |  |  |         return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 455 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 456 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 457 |  |  |     private function update_calculation_fields() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 458 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 459 |  |  |         $form = self::$original_form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 460 |  |  |         $update = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 461 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 462 |  |  |         // get the most up to date entry values | 
            
                                                                                                            
                            
            
                                    
            
            
                | 463 |  |  |         $entry = GFAPI::get_entry( $this->entry['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 464 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 465 |  |  |         if( !empty( $this->fields_with_calculation ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 466 |  |  |             $update = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 467 |  |  |             foreach ( $this->fields_with_calculation as $calc_field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 468 |  |  |                 $inputs = $calc_field->get_entry_inputs(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 469 |  |  |                 if ( is_array( $inputs ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 470 |  |  |                     foreach ( $inputs as $input ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 471 |  |  |                         $input_name = 'input_' . str_replace( '.', '_', $input['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 472 |  |  |                         $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 473 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 474 |  |  |                 } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 475 |  |  |                     $input_name = 'input_' . str_replace( '.', '_', $calc_field->id); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 476 |  |  |                     $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 477 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 478 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 479 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 480 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 481 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 482 |  |  |         if( $update ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 483 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 484 |  |  |             $return_entry = GFAPI::update_entry( $entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 485 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 486 |  |  |             if( is_wp_error( $return_entry ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 487 |  |  |                 do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 488 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 489 |  |  |                 do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 490 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 491 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 492 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 493 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 494 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 495 |  |  |      * Handle updating the Post Image field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 496 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 497 |  |  |      * Sets a new Featured Image if configured in Gravity Forms; otherwise uploads/updates media | 
            
                                                                                                            
                            
            
                                    
            
            
                | 498 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 499 |  |  |      * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 500 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 501 |  |  |      * @uses GFFormsModel::media_handle_upload | 
            
                                                                                                            
                            
            
                                    
            
            
                | 502 |  |  |      * @uses set_post_thumbnail | 
            
                                                                                                            
                            
            
                                    
            
            
                | 503 |  |  |      *  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 504 |  |  |      * @param array $form GF Form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 505 |  |  |      * @param GF_Field $field GF Field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 506 |  |  |      * @param string $field_id Numeric ID of the field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 507 |  |  |      * @param string $value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 508 |  |  |      * @param array $entry GF Entry currently being edited | 
            
                                                                                                            
                            
            
                                    
            
            
                | 509 |  |  |      * @param int $post_id ID of the Post being edited | 
            
                                                                                                            
                            
            
                                    
            
            
                | 510 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 511 |  |  |      * @return mixed|string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 512 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 513 |  |  |     private function update_post_image( $form, $field, $field_id, $value, $entry, $post_id ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 514 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 515 |  |  |         $input_name = 'input_' . $field_id; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 516 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 517 |  |  |         if ( !empty( $_FILES[ $input_name ]['name'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 518 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 519 |  |  |             // We have a new image | 
            
                                                                                                            
                            
            
                                    
            
            
                | 520 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 521 |  |  |             $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 522 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 523 |  |  |             $ary = ! empty( $value ) ? explode( '|:|', $value ) : array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 524 |  |  |             $img_url = rgar( $ary, 0 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 525 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 526 |  |  |             $img_title       = count( $ary ) > 1 ? $ary[1] : ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 527 |  |  |             $img_caption     = count( $ary ) > 2 ? $ary[2] : ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 528 |  |  |             $img_description = count( $ary ) > 3 ? $ary[3] : ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 529 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 530 |  |  |             $image_meta = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 531 |  |  |                 'post_excerpt' => $img_caption, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 532 |  |  |                 'post_content' => $img_description, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 533 |  |  |             ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 534 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 535 |  |  |             //adding title only if it is not empty. It will default to the file name if it is not in the array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 536 |  |  |             if ( ! empty( $img_title ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 537 |  |  |                 $image_meta['post_title'] = $img_title; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 538 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 539 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 540 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 541 |  |  |              * todo: As soon as \GFFormsModel::media_handle_upload becomes a public method, move this call to \GFFormsModel::media_handle_upload and remove the hack from this class. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 542 |  |  |              * Note: the method became public in GF 1.9.17.7, but we don't require that version yet. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 543 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 544 |  |  |             require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 545 |  |  |             $media_id = GravityView_GFFormsModel::media_handle_upload( $img_url, $post_id, $image_meta ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 546 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 547 |  |  |             // is this field set as featured image? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 548 |  |  |             if ( $media_id && $field->postFeaturedImage ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 549 |  |  |                 set_post_thumbnail( $post_id, $media_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 550 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 551 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 552 |  |  |         } elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 553 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 554 |  |  |             // Same image although the image title, caption or description might have changed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 555 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 556 |  |  |             $ary = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 557 |  |  |             if( ! empty( $entry[ $field_id ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 558 |  |  |                 $ary = is_array( $entry[ $field_id ] ) ? $entry[ $field_id ] : explode( '|:|', $entry[ $field_id ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 559 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 560 |  |  |             $img_url = rgar( $ary, 0 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 561 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 562 |  |  |             // is this really the same image or something went wrong ? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 563 |  |  |             if( $img_url === $_POST[ $input_name ] ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 564 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 565 |  |  |                 $img_title       = rgar( $value, $field_id .'.1' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 566 |  |  |                 $img_caption     = rgar( $value, $field_id .'.4' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 567 |  |  |                 $img_description = rgar( $value, $field_id .'.7' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 568 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 569 |  |  |                 $value = ! empty( $img_url ) ? $img_url . "|:|" . $img_title . "|:|" . $img_caption . "|:|" . $img_description : ''; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 570 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 571 |  |  |                 if ( $field->postFeaturedImage ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 572 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 573 |  |  |                     $image_meta = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 574 |  |  |                         'ID' => get_post_thumbnail_id( $post_id ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 575 |  |  |                         'post_title' => $img_title, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 576 |  |  |                         'post_excerpt' => $img_caption, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 577 |  |  |                         'post_content' => $img_description, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 578 |  |  |                     ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 579 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 580 |  |  |                     // update image title, caption or description | 
            
                                                                                                            
                            
            
                                    
            
            
                | 581 |  |  |                     wp_update_post( $image_meta ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 582 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 583 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 584 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 585 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 586 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 587 |  |  |             // if we get here, image was removed or not set. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 588 |  |  |             $value = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 589 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 590 |  |  |             if ( $field->postFeaturedImage ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 591 |  |  |                 delete_post_thumbnail( $post_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 592 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 593 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 594 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 595 |  |  |         return $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 596 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 597 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 598 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 599 |  |  |      * Loop through the fields being edited and if they include Post fields, update the Entry's post object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 600 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 601 |  |  |      * @param array $form Gravity Forms form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 602 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 603 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 604 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 605 |  |  |     private function maybe_update_post_fields( $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 606 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 607 |  |  |         if( empty( $this->entry['post_id'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 608 |  |  | 	        do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 609 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 610 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 611 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 612 |  |  |         $post_id = $this->entry['post_id']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 613 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 614 |  |  |         // Security check | 
            
                                                                                                            
                            
            
                                    
            
            
                | 615 |  |  |         if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 616 |  |  |             do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 617 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 618 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 619 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 620 |  |  |         $update_entry = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 621 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 622 |  |  |         $updated_post = $original_post = get_post( $post_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 623 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 624 |  |  |         foreach ( $this->entry as $field_id => $value ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 625 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 626 |  |  |             $field = RGFormsModel::get_field( $form, $field_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 627 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 628 |  |  |             if( ! $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 629 |  |  |                 continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 630 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 631 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 632 |  |  |             if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 633 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 634 |  |  |                 // Get the value of the field, including $_POSTed value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 635 |  |  |                 $value = RGFormsModel::get_field_value( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 636 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 637 |  |  |                 // Use temporary entry variable, to make values available to fill_post_template() and update_post_image() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 638 |  |  |                 $entry_tmp = $this->entry; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 639 |  |  |                 $entry_tmp["{$field_id}"] = $value; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 640 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 641 |  |  |                 switch( $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 642 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 643 |  |  |                     case 'post_title': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 644 |  |  |                         $post_title = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 645 |  |  |                         if( rgar( $form, 'postTitleTemplateEnabled' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 646 |  |  |                             $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 647 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 648 |  |  |                         $updated_post->post_title = $post_title; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 649 |  |  |                         $updated_post->post_name  = $post_title; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 650 |  |  |                         unset( $post_title ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 651 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 652 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 653 |  |  |                     case 'post_content': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 654 |  |  |                         $post_content = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 655 |  |  |                         if( rgar( $form, 'postContentTemplateEnabled' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 656 |  |  |                             $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 657 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 658 |  |  |                         $updated_post->post_content = $post_content; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 659 |  |  |                         unset( $post_content ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 660 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 661 |  |  |                     case 'post_excerpt': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 662 |  |  |                         $updated_post->post_excerpt = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 663 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 664 |  |  |                     case 'post_tags': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 665 |  |  |                         wp_set_post_tags( $post_id, $value, false ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 666 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 667 |  |  |                     case 'post_category': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 668 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 669 |  |  |                     case 'post_custom_field': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 670 |  |  |                         if( ! empty( $field->customFieldTemplateEnabled ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 671 |  |  |                             $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 672 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 673 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 674 |  |  | 	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 675 |  |  | 		                    $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 676 |  |  | 	                    } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 677 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 678 |  |  |                         update_post_meta( $post_id, $field->postCustomFieldName, $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 679 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 680 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 681 |  |  |                     case 'post_image': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 682 |  |  |                         $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 683 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 684 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 685 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 686 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 687 |  |  |                 // update entry after | 
            
                                                                                                            
                            
            
                                    
            
            
                | 688 |  |  |                 $this->entry["{$field_id}"] = $value; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 689 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 690 |  |  |                 $update_entry = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 691 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 692 |  |  |                 unset( $entry_tmp ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 693 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 694 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 695 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 696 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 697 |  |  |         if( $update_entry ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 698 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 699 |  |  |             $return_entry = GFAPI::update_entry( $this->entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 700 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 701 |  |  |             if( is_wp_error( $return_entry ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 702 |  |  |                do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 703 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 704 |  |  |                 do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 705 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 706 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 707 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 708 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 709 |  |  |         $return_post = wp_update_post( $updated_post, true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 710 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 711 |  |  |         if( is_wp_error( $return_post ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 712 |  |  |             $return_post->add_data( $updated_post, '$updated_post' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 713 |  |  |             do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 714 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 715 |  |  |             do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 716 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 717 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 718 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 719 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 720 |  |  |      * Is the field stored in a JSON-encoded manner? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 721 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 722 |  |  | 	 * @param GF_Field $field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 723 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 724 |  |  | 	 * @return bool True: stored in DB json_encode()'d; False: not encoded | 
            
                                                                                                            
                            
            
                                    
            
            
                | 725 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 726 |  |  |     private function is_field_json_encoded( $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 727 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 728 |  |  | 	    $json_encoded = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 729 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 730 |  |  |         $input_type = RGFormsModel::get_input_type( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 731 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 732 |  |  | 	    // Only certain custom field types are supported | 
            
                                                                                                            
                            
            
                                    
            
            
                | 733 |  |  | 	    switch( $input_type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 734 |  |  | 		    case 'fileupload': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 735 |  |  | 		    case 'list': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 736 |  |  | 		    case 'multiselect': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 737 |  |  | 			    $json_encoded = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 738 |  |  | 			    break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 739 |  |  | 	    } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 740 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 741 |  |  | 	    return $json_encoded; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 742 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 743 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 744 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 745 |  |  |      * Convert a field content template into prepared output | 
            
                                                                                                            
                            
            
                                    
            
            
                | 746 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 747 |  |  |      * @uses GravityView_GFFormsModel::get_post_field_images() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 748 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 749 |  |  |      * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 750 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 751 |  |  |      * @param string $template The content template for the field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 752 |  |  |      * @param array $form Gravity Forms form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 753 |  |  |      * @param bool $do_shortcode Whether to process shortcode inside content. In GF, only run on Custom Field and Post Content fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 754 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 755 |  |  |      * @return mixed|string|void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 756 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 757 |  |  |     private function fill_post_template( $template, $form, $entry, $do_shortcode = false ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 758 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 759 |  |  |         require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 760 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 761 |  |  |         $post_images = GravityView_GFFormsModel::get_post_field_images( $form, $entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 762 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 763 |  |  |         //replacing post image variables | 
            
                                                                                                            
                            
            
                                    
            
            
                | 764 |  |  |         $output = GFCommon::replace_variables_post_image( $template, $post_images, $entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 765 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 766 |  |  |         //replacing all other variables | 
            
                                                                                                            
                            
            
                                    
            
            
                | 767 |  |  |         $output = GFCommon::replace_variables( $output, $form, $entry, false, false, false ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 768 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 769 |  |  |         // replace conditional shortcodes | 
            
                                                                                                            
                            
            
                                    
            
            
                | 770 |  |  |         if( $do_shortcode ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 771 |  |  |             $output = do_shortcode( $output ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 772 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 773 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 774 |  |  |         return $output; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 775 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 776 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 777 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 778 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 779 |  |  |      * Perform actions normally performed after updating a lead | 
            
                                                                                                            
                            
            
                                    
            
            
                | 780 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 781 |  |  |      * @since 1.8 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 782 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 783 |  |  |      * @see GFEntryDetail::lead_detail_page() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 784 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 785 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 786 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 787 |  |  |     private function after_update() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 788 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 789 |  |  |         do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 790 |  |  |         do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 791 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 792 |  |  |         // Re-define the entry now that we've updated it. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 793 |  |  |         $entry = RGFormsModel::get_lead( $this->entry['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 794 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 795 |  |  |         $entry = GFFormsModel::set_entry_meta( $entry, $this->form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 796 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 797 |  |  |         // We need to clear the cache because Gravity Forms caches the field values, which | 
            
                                                                                                            
                            
            
                                    
            
            
                | 798 |  |  |         // we have just updated. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 799 |  |  |         foreach ($this->form['fields'] as $key => $field) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 800 |  |  |             GFFormsModel::refresh_lead_field_value( $entry['id'], $field->id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 801 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 802 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 803 |  |  |         $this->entry = $entry; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 804 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 805 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 806 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 807 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 808 |  |  |      * Display the Edit Entry form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 809 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 810 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 811 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 812 |  |  |     public function edit_entry_form() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 813 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 814 |  |  |         ?> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 815 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 816 |  |  |         <div class="gv-edit-entry-wrapper"><?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 817 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 818 |  |  |             $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 819 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 820 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 821 |  |  |              * Fixes weird wpautop() issue | 
            
                                                                                                            
                            
            
                                    
            
            
                | 822 |  |  |              * @see https://github.com/katzwebservices/GravityView/issues/451 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 823 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 824 |  |  |             echo gravityview_strip_whitespace( $javascript ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 825 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 826 |  |  |             ?><h2 class="gv-edit-entry-title"> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 827 |  |  |                 <span><?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 828 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 829 |  |  |                     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 830 |  |  |                      * @filter `gravityview_edit_entry_title` Modify the edit entry title | 
            
                                                                                                            
                            
            
                                    
            
            
                | 831 |  |  |                      * @param string $edit_entry_title Modify the "Edit Entry" title | 
            
                                                                                                            
                            
            
                                    
            
            
                | 832 |  |  |                      * @param GravityView_Edit_Entry_Render $this This object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 833 |  |  |                      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 834 |  |  |                     $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 835 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 836 |  |  |                     echo esc_attr( $edit_entry_title ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 837 |  |  |             ?></span> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 838 |  |  |             </h2> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 839 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 840 |  |  |             <?php $this->maybe_print_message(); ?> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 841 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 842 |  |  |             <?php // The ID of the form needs to be `gform_{form_id}` for the pluploader ?> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 843 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 844 |  |  |             <form method="post" id="gform_<?php echo $this->form_id; ?>" enctype="multipart/form-data"> | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 845 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 846 |  |  |                 <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 847 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 848 |  |  |                 wp_nonce_field( self::$nonce_key, self::$nonce_key ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 849 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 850 |  |  |                 wp_nonce_field( self::$nonce_field, self::$nonce_field, false ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 851 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 852 |  |  |                 // Print the actual form HTML | 
            
                                                                                                            
                            
            
                                    
            
            
                | 853 |  |  |                 $this->render_edit_form(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 854 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 855 |  |  |                 ?> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 856 |  |  |             </form> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 857 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 858 |  |  |             <script> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 859 |  |  |                 gform.addFilter('gform_reset_pre_conditional_logic_field_action', function ( reset, formId, targetId, defaultValues, isInit ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 860 |  |  |                     return false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 861 |  |  |                 }); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 862 |  |  |             </script> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 863 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 864 |  |  |         </div> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 865 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 866 |  |  |     <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 867 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 868 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 869 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 870 |  |  |      * Display success or error message if the form has been submitted | 
            
                                                                                                            
                            
            
                                    
            
            
                | 871 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 872 |  |  |      * @uses GVCommon::generate_notice | 
            
                                                                                                            
                            
            
                                    
            
            
                | 873 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 874 |  |  |      * @since 1.16.2.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 875 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 876 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 877 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 878 |  |  |     private function maybe_print_message() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 879 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 880 |  |  |         if( rgpost('action') === 'update' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 881 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 882 |  |  |             $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 883 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 884 |  |  |             if( ! $this->is_valid ){ | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 885 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 886 |  |  |                 // Keeping this compatible with Gravity Forms. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 887 |  |  |                 $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>"; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 888 |  |  |                 $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 889 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 890 |  |  |                 echo GVCommon::generate_notice( $message , 'gv-error' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 891 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 892 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 893 |  |  |                 $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 894 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 895 |  |  |                 /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 896 |  |  |                  * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 897 |  |  |                  * @since 1.5.4 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 898 |  |  |                  * @param string $entry_updated_message Existing message | 
            
                                                                                                            
                            
            
                                    
            
            
                | 899 |  |  |                  * @param int $view_id View ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 900 |  |  |                  * @param array $entry Gravity Forms entry array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 901 |  |  |                  * @param string $back_link URL to return to the original entry. @since 1.6 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 902 |  |  |                  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 903 |  |  |                 $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 904 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 905 |  |  |                 echo GVCommon::generate_notice( $message ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 906 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 907 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 908 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 909 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 910 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 911 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 912 |  |  |      * Display the Edit Entry form in the original Gravity Forms format | 
            
                                                                                                            
                            
            
                                    
            
            
                | 913 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 914 |  |  |      * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 915 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 916 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 917 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 918 |  |  |     private function render_edit_form() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 919 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 920 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 921 |  |  |          * @action `gravityview/edit-entry/render/before` Before rendering the Edit Entry form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 922 |  |  |          * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 923 |  |  |          * @param GravityView_Edit_Entry_Render $this | 
            
                                                                                                            
                            
            
                                    
            
            
                | 924 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 925 |  |  |         do_action( 'gravityview/edit-entry/render/before', $this ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 926 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 927 |  |  |         add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 928 |  |  |         add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 929 |  |  |         add_filter( 'gform_disable_view_counter', '__return_true' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 930 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 931 |  |  |         add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 932 |  |  |         add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 933 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 934 |  |  |         // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 935 |  |  |         unset( $_GET['page'] ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 936 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 937 |  |  |         // Prevent "Product Fields are not editable" message on submitted form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 938 |  |  | 	    unset( $_POST ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 939 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 940 |  |  |         // TODO: Verify multiple-page forms | 
            
                                                                                                            
                            
            
                                    
            
            
                | 941 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 942 |  |  |         ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 943 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 944 |  |  |         $html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 945 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 946 |  |  |         ob_get_clean(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 947 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 948 |  |  | 	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 949 |  |  |         remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 950 |  |  |         remove_filter( 'gform_disable_view_counter', '__return_true' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 951 |  |  |         remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 952 |  |  |         remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 953 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 954 |  |  |         echo $html; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 955 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 956 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 957 |  |  |          * @action `gravityview/edit-entry/render/after` After rendering the Edit Entry form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 958 |  |  |          * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 959 |  |  |          * @param GravityView_Edit_Entry_Render $this | 
            
                                                                                                            
                            
            
                                    
            
            
                | 960 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 961 |  |  |         do_action( 'gravityview/edit-entry/render/after', $this ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 962 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 963 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 964 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 965 |  |  |      * Display the Update/Cancel/Delete buttons for the Edit Entry form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 966 |  |  |      * @since 1.8 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 967 |  |  |      * @return string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 968 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 969 |  |  |     public function render_form_buttons() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 970 |  |  |         return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 971 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 972 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 973 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 974 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 975 |  |  |      * Modify the form fields that are shown when using GFFormDisplay::get_form() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 976 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 977 |  |  |      * By default, all fields will be shown. We only want the Edit Tab configured fields to be shown. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 978 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 979 |  |  |      * @param array $form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 980 |  |  |      * @param boolean $ajax Whether in AJAX mode | 
            
                                                                                                            
                            
            
                                    
            
            
                | 981 |  |  |      * @param array|string $field_values Passed parameters to the form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 982 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 983 |  |  |      * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 984 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 985 |  |  |      * @return array Modified form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 986 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 987 |  |  |     public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 988 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 989 |  |  |         // In case we have validated the form, use it to inject the validation results into the form render | 
            
                                                                                                            
                            
            
                                    
            
            
                | 990 |  |  |         if( isset( $this->form_after_validation ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 991 |  |  |             $form = $this->form_after_validation; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 992 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 993 |  |  |             $form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 994 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 995 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 996 |  |  |         $form = $this->filter_conditional_logic( $form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 997 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 998 |  |  |         $form = $this->prefill_conditional_logic( $form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 999 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1000 |  |  |         // for now we don't support Save and Continue feature. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1001 |  |  |         if( ! self::$supports_save_and_continue ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1002 |  |  | 	        unset( $form['save'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1003 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1004 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1005 |  |  |         return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1006 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1007 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1008 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1009 |  |  |      * When displaying a field, check if it's a Post Field, and if so, make sure the post exists and current user has edit rights. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1010 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1011 |  |  |      * @since 1.16.2.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1012 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1013 |  |  |      * @param string $field_content Always empty. Returning not-empty overrides the input. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1014 |  |  |      * @param GF_Field $field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1015 |  |  |      * @param string|array $value If array, it's a field with multiple inputs. If string, single input. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1016 |  |  |      * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1017 |  |  |      * @param int $form_id Form ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1018 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1019 |  |  |      * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1020 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1021 |  |  |     public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1022 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1023 |  |  |         if( GFCommon::is_post_field( $field ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1024 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1025 |  |  |             $message = null; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1026 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1027 |  |  |             // First, make sure they have the capability to edit the post. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1028 |  |  |             if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1029 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1030 |  |  |                 /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1031 |  |  |                  * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1032 |  |  |                  * @param string $message The existing "You don't have permission..." text | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1033 |  |  |                  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1034 |  |  |                 $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don’t have permission to edit this post.', 'gravityview') ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1035 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1036 |  |  |             } elseif( null === get_post( $this->entry['post_id'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1037 |  |  |                 /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1038 |  |  |                  * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1039 |  |  |                  * @param string $message The existing "This field is not editable; the post no longer exists." text | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1040 |  |  |                  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1041 |  |  |                 $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1042 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1043 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1044 |  |  |             if( $message ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1045 |  |  |                 $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1046 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1047 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1048 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1049 |  |  |         return $field_content; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1050 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1051 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1052 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1053 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1054 |  |  |      * Fill-in the saved values into the form inputs | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1055 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1056 |  |  |      * @param string $field_content Always empty. Returning not-empty overrides the input. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1057 |  |  |      * @param GF_Field $field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1058 |  |  |      * @param string|array $value If array, it's a field with multiple inputs. If string, single input. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1059 |  |  |      * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1060 |  |  |      * @param int $form_id Form ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1061 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1062 |  |  |      * @return mixed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1063 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1064 |  |  |     public function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1065 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1066 |  |  |         $gv_field = GravityView_Fields::get_associated_field( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1067 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1068 |  |  |         // If the form has been submitted, then we don't need to pre-fill the values, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1069 |  |  |         // Except for fileupload type and when a field input is overridden- run always!! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1070 |  |  |         if( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1071 |  |  |             ( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) ) | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1072 |  |  |             && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1073 |  |  |             || ! empty( $field_content ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1074 |  |  |             || in_array( $field->type, array( 'honeypot' ) ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1075 |  |  |         ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1076 |  |  | 	        return $field_content; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1077 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1078 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1079 |  |  |         // Turn on Admin-style display for file upload fields only | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1080 |  |  |         if( 'fileupload' === $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1081 |  |  |             $_GET['page'] = 'gf_entries'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1082 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1083 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1084 |  |  |         // SET SOME FIELD DEFAULTS TO PREVENT ISSUES | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1085 |  |  |         $field->adminOnly = false; /** @see GFFormDisplay::get_counter_init_script() need to prevent adminOnly */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1086 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1087 |  |  |         // add categories as choices for Post Category field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1088 |  |  |         if ( 'post_category' === $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1089 |  |  |             $field = GFCommon::add_categories_as_choices( $field, $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1090 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1091 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1092 |  |  |         $field_value = $this->get_field_value( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1093 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1094 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1095 |  |  |          * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1096 |  |  |          * @since 1.11 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1097 |  |  |          * @since 1.20 Added third param | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1098 |  |  |          * @param mixed $field_value field value used to populate the input | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1099 |  |  |          * @param object $field Gravity Forms field object ( Class GF_Field ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1100 |  |  |          * @param GravityView_Edit_Entry_Render $this Current object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1101 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1102 |  |  |         $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1103 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1104 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1105 |  |  |          * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1106 |  |  |          * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1107 |  |  |          * @since 1.20 Added third param | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1108 |  |  |          * @param mixed $field_value field value used to populate the input | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1109 |  |  |          * @param GF_Field $field Gravity Forms field object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1110 |  |  |          * @param GravityView_Edit_Entry_Render $this Current object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1111 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1112 |  |  |         $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1113 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1114 |  |  | 	    // Prevent any PHP warnings, like undefined index | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1115 |  |  | 	    ob_start(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1116 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1117 |  |  |         /** @var GravityView_Field $gv_field */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1118 |  |  |         if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1119 |  |  |             $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1120 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1121 |  |  | 	        $return = $field->get_field_input( $this->form, $field_value, $this->entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1122 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1123 |  |  |  | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1124 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1125 |  |  | 	    // If there was output, it's an error | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1126 |  |  | 	    $warnings = ob_get_clean(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1127 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1128 |  |  | 	    if( !empty( $warnings ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1129 |  |  | 		    do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1130 |  |  | 	    } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1131 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1132 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1133 |  |  |          * Unset hack $_GET['page'] = 'gf_entries' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1134 |  |  |          * We need the fileupload html field to render with the proper id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1135 |  |  |          *  ( <li id="field_80_16" ... > ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1136 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1137 |  |  |         unset( $_GET['page'] ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1138 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1139 |  |  |         return $return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1140 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1141 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1142 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1143 |  |  |      * Modify the value for the current field input | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1144 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1145 |  |  |      * @param GF_Field $field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1146 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1147 |  |  |      * @return array|mixed|string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1148 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1149 |  |  |     private function get_field_value( $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1150 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1151 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1152 |  |  |          * @filter `gravityview/edit_entry/pre_populate/override` Allow the pre-populated value to override saved value in Edit Entry form. By default, pre-populate mechanism only kicks on empty fields. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1153 |  |  |          * @param boolean True: override saved values; False: don't override (default) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1154 |  |  |          * @param $field GF_Field object Gravity Forms field object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1155 |  |  |          * @since 1.13 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1156 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1157 |  |  |         $override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1158 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1159 |  |  |         // We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1160 |  |  |         if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1161 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1162 |  |  |             $field_value = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1163 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1164 |  |  |             // only accept pre-populated values if the field doesn't have any choice selected. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1165 |  |  |             $allow_pre_populated = $field->allowsPrepopulate; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1166 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1167 |  |  |             foreach ( (array)$field->inputs as $input ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1168 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1169 |  |  |                 $input_id = strval( $input['id'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1170 |  |  |                  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1171 |  |  |                 if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1172 |  |  |                     $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ]; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1173 |  |  |                     $allow_pre_populated = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1174 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1175 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1176 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1177 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1178 |  |  |             $pre_value = $field->get_value_submission( array(), false ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1179 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1180 |  |  |             $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1181 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1182 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1183 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1184 |  |  |             $id = intval( $field->id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1185 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1186 |  |  |             // get pre-populated value if exists | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1187 |  |  |             $pre_value = $field->allowsPrepopulate ? GFFormsModel::get_parameter_value( $field->inputName, array(), $field ) : ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1188 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1189 |  |  |             // saved field entry value (if empty, fallback to the pre-populated value, if exists) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1190 |  |  |             // or pre-populated value if not empty and set to override saved value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1191 |  |  |             $field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1192 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1193 |  |  |             // in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1194 |  |  |             if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1195 |  |  |                 $categories = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1196 |  |  |                 foreach ( explode( ',', $field_value ) as $cat_string ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1197 |  |  |                     $categories[] = GFCommon::format_post_category( $cat_string, true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1198 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1199 |  |  |                 $field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1200 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1201 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1202 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1203 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1204 |  |  |         // if value is empty get the default value if defined | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1205 |  |  |         $field_value = $field->get_value_default_if_empty( $field_value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1206 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1207 |  |  |         return $field_value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1208 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1209 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1210 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1211 |  |  |     // ---- Entry validation | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1212 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1213 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1214 |  |  |      * Add field keys that Gravity Forms expects. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1215 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1216 |  |  |      * @see GFFormDisplay::validate() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1217 |  |  |      * @param  array $form GF Form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1218 |  |  |      * @return array       Modified GF Form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1219 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1220 |  |  |     public function gform_pre_validation( $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1221 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1222 |  |  |         if( ! $this->verify_nonce() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1223 |  |  |             return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1224 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1225 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1226 |  |  |         // Fix PHP warning regarding undefined index. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1227 |  |  |         foreach ( $form['fields'] as &$field) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1228 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1229 |  |  |             // This is because we're doing admin form pretending to be front-end, so Gravity Forms | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1230 |  |  |             // expects certain field array items to be set. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1231 |  |  |             foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1232 |  |  | 	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1233 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1234 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1235 |  |  |             // unset emailConfirmEnabled for email type fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1236 |  |  |            /* if( 'email' === $field['type'] && !empty( $field['emailConfirmEnabled'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1237 |  |  |                 $field['emailConfirmEnabled'] = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1238 |  |  |             }*/ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1239 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1240 |  |  |             switch( RGFormsModel::get_input_type( $field ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1241 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1242 |  |  |                 /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1243 |  |  |                  * this whole fileupload hack is because in the admin, Gravity Forms simply doesn't update any fileupload field if it's empty, but it DOES in the frontend. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1244 |  |  |                  * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1245 |  |  |                  * What we have to do is set the value so that it doesn't get overwritten as empty on save and appears immediately in the Edit Entry screen again. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1246 |  |  |                  * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1247 |  |  |                  * @hack | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1248 |  |  |                  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1249 |  |  |                 case 'fileupload': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1250 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1251 |  |  |                     // Set the previous value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1252 |  |  |                     $entry = $this->get_entry(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1253 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1254 |  |  |                     $input_name = 'input_'.$field->id; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1255 |  |  |                     $form_id = $form['id']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1256 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1257 |  |  |                     $value = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1258 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1259 |  |  |                     // Use the previous entry value as the default. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1260 |  |  |                     if( isset( $entry[ $field->id ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1261 |  |  |                         $value = $entry[ $field->id ]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1262 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1263 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1264 |  |  |                     // If this is a single upload file | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1265 |  |  |                     if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1266 |  |  |                         $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1267 |  |  |                         $value = $file_path['url']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1268 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1269 |  |  |                     } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1270 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1271 |  |  |                         // Fix PHP warning on line 1498 of form_display.php for post_image fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1272 |  |  |                         // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1273 |  |  |                         $_FILES[ $input_name ] = array('name' => '', 'size' => '' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1274 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1275 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1276 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1277 |  |  |                     if( rgar($field, "multipleFiles") ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1278 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1279 |  |  |                         // If there are fresh uploads, process and merge them. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1280 |  |  |                         // Otherwise, use the passed values, which should be json-encoded array of URLs | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1281 |  |  |                         if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1282 |  |  |                             $value = empty( $value ) ? '[]' : $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1283 |  |  |                             $value = stripslashes_deep( $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1284 |  |  |                             $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array()); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1285 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1286 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1287 |  |  |                     } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1288 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1289 |  |  |                         // A file already exists when editing an entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1290 |  |  |                         // We set this to solve issue when file upload fields are required. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1291 |  |  |                         GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1292 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1293 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1294 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1295 |  |  |                     $this->entry[ $input_name ] = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1296 |  |  |                     $_POST[ $input_name ] = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1297 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1298 |  |  |                     break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1299 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1300 |  |  |                 case 'number': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1301 |  |  |                     // Fix "undefined index" issue at line 1286 in form_display.php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1302 |  |  |                     if( !isset( $_POST['input_'.$field->id ] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1303 |  |  |                         $_POST['input_'.$field->id ] = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1304 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1305 |  |  |                     break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1306 |  |  |                 case 'captcha': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1307 |  |  |                     // Fix issue with recaptcha_check_answer() on line 1458 in form_display.php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1308 |  |  |                     $_POST['recaptcha_challenge_field'] = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1309 |  |  |                     $_POST['recaptcha_response_field'] = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1310 |  |  |                     break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1311 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1312 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1313 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1314 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1315 |  |  |         return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1316 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1317 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1318 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1319 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1320 |  |  |      * Process validation for a edit entry submission | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1321 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1322 |  |  |      * Sets the `is_valid` object var | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1323 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1324 |  |  |      * @return void | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1325 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1326 |  |  |     private function validate() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1327 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1328 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1329 |  |  |          * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1330 |  |  |          * GF User Registration Add-on version > 3.x has a different class name | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1331 |  |  |          * @since 1.16.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1332 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1333 |  |  |         if ( class_exists( 'GF_User_Registration' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1334 |  |  |             remove_filter( 'gform_validation', array( GF_User_Registration::get_instance(), 'validate' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1335 |  |  |         } else  if ( class_exists( 'GFUser' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1336 |  |  |             remove_filter( 'gform_validation', array( 'GFUser', 'user_registration_validation' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1337 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1338 |  |  |  | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1339 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1340 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1341 |  |  |          * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1342 |  |  |          * You can enter whatever you want! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1343 |  |  |          * We try validating, and customize the results using `self::custom_validation()` | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1344 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1345 |  |  |         add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1346 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1347 |  |  |         // Needed by the validate funtion | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1348 |  |  |         $failed_validation_page = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1349 |  |  |         $field_values = RGForms::post( 'gform_field_values' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1350 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1351 |  |  |         // Prevent entry limit from running when editing an entry, also | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1352 |  |  |         // prevent form scheduling from preventing editing | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1353 |  |  |         unset( $this->form['limitEntries'], $this->form['scheduleForm'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1354 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1355 |  |  |         // Hide fields depending on Edit Entry settings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1356 |  |  |         $this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1357 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1358 |  |  |         $this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1359 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1360 |  |  |         remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1361 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1362 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1363 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1364 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1365 |  |  |      * Make validation work for Edit Entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1366 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1367 |  |  |      * Because we're calling the GFFormDisplay::validate() in an unusual way (as a front-end | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1368 |  |  |      * form pretending to be a back-end form), validate() doesn't know we _can't_ edit post | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1369 |  |  |      * fields. This goes through all the fields and if they're an invalid post field, we | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1370 |  |  |      * set them as valid. If there are still issues, we'll return false. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1371 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1372 |  |  |      * @param  [type] $validation_results [description] | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1373 |  |  |      * @return [type]                     [description] | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1374 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1375 |  |  |     public function custom_validation( $validation_results ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1376 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1377 |  |  |         do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1378 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1379 |  |  |         do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1380 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1381 |  |  |         $gv_valid = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1382 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1383 |  |  |         foreach ( $validation_results['form']['fields'] as $key => &$field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1384 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1385 |  |  |             $value = RGFormsModel::get_field_value( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1386 |  |  |             $field_type = RGFormsModel::get_input_type( $field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1387 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1388 |  |  |             // Validate always | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1389 |  |  |             switch ( $field_type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1390 |  |  |  | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1391 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1392 |  |  |                 case 'fileupload' : | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1393 |  |  |                 case 'post_image': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1394 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1395 |  |  |                     // in case nothing is uploaded but there are already files saved | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1396 |  |  |                     if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1397 |  |  |                         $field->failed_validation = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1398 |  |  |                         unset( $field->validation_message ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1399 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1400 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1401 |  |  |                     // validate if multi file upload reached max number of files [maxFiles] => 2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1402 |  |  |                     if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1403 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1404 |  |  |                         $input_name = 'input_' . $field->id; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1405 |  |  |                         //uploaded | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1406 |  |  |                         $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1407 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1408 |  |  |                         //existent | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1409 |  |  |                         $entry = $this->get_entry(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1410 |  |  |                         $value = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1411 |  |  |                         if( isset( $entry[ $field->id ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1412 |  |  |                             $value = json_decode( $entry[ $field->id ], true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1413 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1414 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1415 |  |  |                         // count uploaded files and existent entry files | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1416 |  |  |                         $count_files = count( $file_names ) + count( $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1417 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1418 |  |  |                         if( $count_files > $field->maxFiles ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1419 |  |  |                             $field->validation_message = __( 'Maximum number of files reached', 'gravityview' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1420 |  |  |                             $field->failed_validation = 1; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1421 |  |  |                             $gv_valid = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1422 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1423 |  |  |                             // in case of error make sure the newest upload files are removed from the upload input | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1424 |  |  |                             GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1425 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1426 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1427 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1428 |  |  |  | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1429 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1430 |  |  |                     break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1431 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1432 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1433 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1434 |  |  |             // This field has failed validation. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1435 |  |  |             if( !empty( $field->failed_validation ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1436 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1437 |  |  |                 do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1438 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1439 |  |  |                 switch ( $field_type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1440 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1441 |  |  |                     // Captchas don't need to be re-entered. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1442 |  |  |                     case 'captcha': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1443 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1444 |  |  |                         // Post Image fields aren't editable, so we un-fail them. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1445 |  |  |                     case 'post_image': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1446 |  |  |                         $field->failed_validation = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1447 |  |  |                         unset( $field->validation_message ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1448 |  |  |                         break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1449 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1450 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1451 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1452 |  |  |                 // You can't continue inside a switch, so we do it after. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1453 |  |  |                 if( empty( $field->failed_validation ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1454 |  |  |                     continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1455 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1456 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1457 |  |  |                 // checks if the No Duplicates option is not validating entry against itself, since | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1458 |  |  |                 // we're editing a stored entry, it would also assume it's a duplicate. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1459 |  |  |                 if( !empty( $field->noDuplicates ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1460 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1461 |  |  |                     $entry = $this->get_entry(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1462 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1463 |  |  |                     // If the value of the entry is the same as the stored value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1464 |  |  |                     // Then we can assume it's not a duplicate, it's the same. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1465 |  |  |                     if( !empty( $entry ) && $value == $entry[ $field->id ] ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1466 |  |  |                         //if value submitted was not changed, then don't validate | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1467 |  |  |                         $field->failed_validation = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1468 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1469 |  |  |                         unset( $field->validation_message ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1470 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1471 |  |  |                         do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1472 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1473 |  |  |                         continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1474 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1475 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1476 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1477 |  |  |                 // if here then probably we are facing the validation 'At least one field must be filled out' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1478 |  |  |                 if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1479 |  |  |                     unset( $field->validation_message ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1480 |  |  | 	                $field->validation_message = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1481 |  |  |                     continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1482 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1483 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1484 |  |  |                 $gv_valid = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1485 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1486 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1487 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1488 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1489 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1490 |  |  |         $validation_results['is_valid'] = $gv_valid; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1491 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1492 |  |  |         do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1493 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1494 |  |  |         // We'll need this result when rendering the form ( on GFFormDisplay::get_form ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1495 |  |  |         $this->form_after_validation = $validation_results['form']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1496 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1497 |  |  |         return $validation_results; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1498 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1499 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1500 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1501 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1502 |  |  |      * TODO: This seems to be hacky... we should remove it. Entry is set when updating the form using setup_vars()! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1503 |  |  |      * Get the current entry and set it if it's not yet set. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1504 |  |  |      * @return array Gravity Forms entry array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1505 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1506 |  |  |     public function get_entry() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1507 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1508 |  |  |         if( empty( $this->entry ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1509 |  |  |             // Get the database value of the entry that's being edited | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1510 |  |  |             $this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1511 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1512 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1513 |  |  |         return $this->entry; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1514 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1515 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1516 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1517 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1518 |  |  |     // --- Filters | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1519 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1520 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1521 |  |  |      * Get the Edit Entry fields as configured in the View | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1522 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1523 |  |  |      * @since 1.8 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1524 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1525 |  |  |      * @param int $view_id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1526 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1527 |  |  |      * @return array Array of fields that are configured in the Edit tab in the Admin | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1528 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1529 |  |  |     private function get_configured_edit_fields( $form, $view_id ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1530 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1531 |  |  |         // Get all fields for form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1532 |  |  |         $properties = GravityView_View_Data::getInstance()->get_fields( $view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1533 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1534 |  |  |         // If edit tab not yet configured, show all fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1535 |  |  |         $edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1536 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1537 |  |  |         // Hide fields depending on admin settings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1538 |  |  |         $fields = $this->filter_fields( $form['fields'], $edit_fields ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1539 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1540 |  |  | 	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1541 |  |  | 	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1542 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1543 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1544 |  |  |          * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1545 |  |  |          * @since 1.17 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1546 |  |  |          * @param GF_Field[] $fields Gravity Forms form fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1547 |  |  |          * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1548 |  |  |          * @param array $form GF Form array (`fields` key modified to have only fields configured to show in Edit Entry) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1549 |  |  |          * @param int $view_id View ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1550 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1551 |  |  |         $fields = apply_filters( 'gravityview/edit_entry/form_fields', $fields, $edit_fields, $form, $view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1552 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1553 |  |  |         return $fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1554 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1555 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1556 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1557 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1558 |  |  |      * Filter area fields based on specified conditions | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1559 |  |  |      *  - This filter removes the fields that have calculation configured | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1560 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1561 |  |  |      * @uses GravityView_Edit_Entry::user_can_edit_field() Check caps | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1562 |  |  |      * @access private | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1563 |  |  |      * @param GF_Field[] $fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1564 |  |  |      * @param array $configured_fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1565 |  |  |      * @since  1.5 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1566 |  |  |      * @return array $fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1567 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1568 |  |  |     private function filter_fields( $fields, $configured_fields ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1569 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1570 |  |  |         if( empty( $fields ) || !is_array( $fields ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1571 |  |  |             return $fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1572 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1573 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1574 |  |  |         $edit_fields = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1575 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1576 |  |  |         $field_type_blacklist = $this->loader->get_field_blacklist( $this->entry ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1577 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1578 |  |  |         // First, remove blacklist or calculation fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1579 |  |  |         foreach ( $fields as $key => $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1580 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1581 |  |  |             // Remove the fields that have calculation properties and keep them to be used later | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1582 |  |  |             // @since 1.16.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1583 |  |  |             if( $field->has_calculation() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1584 |  |  |                 $this->fields_with_calculation[] = $field; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1585 |  |  |                 // don't remove the calculation fields on form render. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1586 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1587 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1588 |  |  |             // process total field after all fields have been saved | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1589 |  |  |             if ( 'total' === $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1590 |  |  |                 $this->total_fields[] = $field; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1591 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1592 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1593 |  |  |             if( in_array( $field->type, $field_type_blacklist ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1594 |  |  |                 unset( $fields[ $key ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1595 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1596 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1597 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1598 |  |  |         // The Edit tab has not been configured, so we return all fields by default. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1599 |  |  |         if( empty( $configured_fields ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1600 |  |  |             return $fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1601 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1602 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1603 |  |  |         // The edit tab has been configured, so we loop through to configured settings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1604 |  |  |         foreach ( $configured_fields as $configured_field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1605 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1606 |  |  | 	        /** @var GF_Field $field */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1607 |  |  | 	        foreach ( $fields as $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1608 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1609 |  |  |                 if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1610 |  |  |                     $edit_fields[] = $this->merge_field_properties( $field, $configured_field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1611 |  |  |                     break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1612 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1613 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1614 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1615 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1616 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1617 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1618 |  |  |         return $edit_fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1619 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1620 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1621 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1622 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1623 |  |  |      * Override GF Form field properties with the ones defined on the View | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1624 |  |  |      * @param  GF_Field $field GF Form field object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1625 |  |  |      * @param  array $field_setting  GV field options | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1626 |  |  |      * @since  1.5 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1627 |  |  |      * @return array|GF_Field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1628 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1629 |  |  |     private function merge_field_properties( $field, $field_setting ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1630 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1631 |  |  |         $return_field = $field; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1632 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1633 |  |  |         if( empty( $field_setting['show_label'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1634 |  |  |             $return_field->label = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1635 |  |  |         } elseif ( !empty( $field_setting['custom_label'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1636 |  |  |             $return_field->label = $field_setting['custom_label']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1637 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1638 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1639 |  |  |         if( !empty( $field_setting['custom_class'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1640 |  |  |             $return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1641 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1642 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1643 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1644 |  |  |          * Normalize page numbers - avoid conflicts with page validation | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1645 |  |  |          * @since 1.6 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1646 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1647 |  |  |         $return_field->pageNumber = 1; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1648 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1649 |  |  |         return $return_field; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1650 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1651 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1652 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1653 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1654 |  |  |      * Remove fields that shouldn't be visible based on the Gravity Forms adminOnly field property | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1655 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1656 |  |  |      * @since 1.9.1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1657 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1658 |  |  |      * @param array|GF_Field[] $fields Gravity Forms form fields | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1659 |  |  |      * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1660 |  |  |      * @param array $form GF Form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1661 |  |  |      * @param int $view_id View ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1662 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1663 |  |  |      * @return array Possibly modified form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1664 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1665 |  |  |     private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1666 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1667 |  |  | 	    /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1668 |  |  |          * @filter `gravityview/edit_entry/use_gf_admin_only_setting` When Edit tab isn't configured, should the Gravity Forms "Admin Only" field settings be used to control field display to non-admins? Default: true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1669 |  |  | 	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1670 |  |  | 	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1671 |  |  | 	     * @since 1.9.1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1672 |  |  | 	     * @param boolean $use_gf_adminonly_setting True: Hide field if set to Admin Only in GF and the user is not an admin. False: show field based on GV permissions, ignoring GF permissions. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1673 |  |  | 	     * @param array $form GF Form array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1674 |  |  | 	     * @param int $view_id View ID | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1675 |  |  | 	     */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1676 |  |  | 	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1677 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1678 |  |  | 	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1679 |  |  |             foreach( $fields as $k => $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1680 |  |  |                 if( $field->adminOnly ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1681 |  |  |                     unset( $fields[ $k ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1682 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1683 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1684 |  |  |             return $fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1685 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1686 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1687 |  |  | 	    foreach( $fields as &$field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1688 |  |  | 		    $field->adminOnly = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1689 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1690 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1691 |  |  |         return $fields; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1692 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1693 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1694 |  |  |     // --- Conditional Logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1695 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1696 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1697 |  |  |      * Conditional logic isn't designed to work with forms that already have content. When switching input values, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1698 |  |  |      * the dependent fields will be blank. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1699 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1700 |  |  |      * Note: This is because GF populates a JavaScript variable with the input values. This is tough to filter at the input level; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1701 |  |  |      * via the `gform_field_value` filter; it requires lots of legwork. Doing it at the form level is easier. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1702 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1703 |  |  |      * @since 1.17.4 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1704 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1705 |  |  |      * @param array $form Gravity Forms array object | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1706 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1707 |  |  |      * @return array $form, modified to fix conditional | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1708 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1709 |  |  |     function prefill_conditional_logic( $form ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1710 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1711 |  |  |         if( ! GFFormDisplay::has_conditional_logic( $form ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1712 |  |  |             return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1713 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1714 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1715 |  |  |         // Have Conditional Logic pre-fill fields as if the data were default values | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1716 |  |  |         /** @var GF_Field $field */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1717 |  |  |         foreach ( $form['fields'] as &$field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1718 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1719 |  |  |             if( 'checkbox' === $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1720 |  |  |                 foreach ( $field->get_entry_inputs() as $key => $input ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1721 |  |  |                     $input_id = $input['id']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1722 |  |  |                     $choice = $field->choices[ $key ]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1723 |  |  |                     $value = rgar( $this->entry, $input_id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1724 |  |  |                     $match = RGFormsModel::choice_value_match( $field, $choice, $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1725 |  |  |                     if( $match ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1726 |  |  |                         $field->choices[ $key ]['isSelected'] = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1727 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1728 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1729 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1730 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1731 |  |  |                 // We need to run through each field to set the default values | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1732 |  |  |                 foreach ( $this->entry as $field_id => $field_value ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1733 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1734 |  |  |                     if( floatval( $field_id ) === floatval( $field->id ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1735 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1736 |  |  |                         if( 'list' === $field->type ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1737 |  |  |                             $list_rows = maybe_unserialize( $field_value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1738 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1739 |  |  |                             $list_field_value = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1740 |  |  |                             foreach ( (array) $list_rows as $row ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1741 |  |  |                                 foreach ( (array) $row as $column ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1742 |  |  |                                     $list_field_value[] = $column; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1743 |  |  |                                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1744 |  |  |                             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1745 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1746 |  |  |                             $field->defaultValue = serialize( $list_field_value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1747 |  |  |                         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1748 |  |  |                             $field->defaultValue = $field_value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1749 |  |  |                         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1750 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1751 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1752 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1753 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1754 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1755 |  |  |         return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1756 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1757 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1758 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1759 |  |  |      * Remove the conditional logic rules from the form button and the form fields, if needed. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1760 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1761 |  |  |      * @todo Merge with caller method | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1762 |  |  |      * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1763 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1764 |  |  |      * @param array $form Gravity Forms form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1765 |  |  |      * @return array Modified form, if not using Conditional Logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1766 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1767 |  |  |     private function filter_conditional_logic( $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1768 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1769 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1770 |  |  |          * @filter `gravityview/edit_entry/conditional_logic` Should the Edit Entry form use Gravity Forms conditional logic showing/hiding of fields? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1771 |  |  |          * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1772 |  |  |          * @param bool $use_conditional_logic True: Gravity Forms will show/hide fields just like in the original form; False: conditional logic will be disabled and fields will be shown based on configuration. Default: true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1773 |  |  |          * @param array $form Gravity Forms form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1774 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1775 |  |  |         $use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1776 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1777 |  |  |         if( $use_conditional_logic ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1778 |  |  |             return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1779 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1780 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1781 |  |  |         foreach( $form['fields'] as &$field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1782 |  |  |             /* @var GF_Field $field */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1783 |  |  |             $field->conditionalLogic = null; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1784 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1785 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1786 |  |  |         unset( $form['button']['conditionalLogic'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1787 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1788 |  |  |         return $form; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1789 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1790 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1791 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1792 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1793 |  |  |      * Disable the Gravity Forms conditional logic script and features on the Edit Entry screen | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1794 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1795 |  |  |      * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1796 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1797 |  |  |      * @param $has_conditional_logic | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1798 |  |  |      * @param $form | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1799 |  |  |      * @return mixed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1800 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1801 |  |  |     public function manage_conditional_logic( $has_conditional_logic, $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1802 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1803 |  |  |         if( ! $this->is_edit_entry() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1804 |  |  |             return $has_conditional_logic; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1805 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1806 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1807 |  |  | 	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1808 |  |  |         return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1809 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1810 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1811 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1812 |  |  |     // --- User checks and nonces | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1813 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1814 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1815 |  |  |      * Check if the user can edit the entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1816 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1817 |  |  |      * - Is the nonce valid? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1818 |  |  |      * - Does the user have the right caps for the entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1819 |  |  |      * - Is the entry in the trash? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1820 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1821 |  |  |      * @todo Move to GVCommon | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1822 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1823 |  |  |      * @param  boolean $echo Show error messages in the form? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1824 |  |  |      * @return boolean        True: can edit form. False: nope. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1825 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1826 |  |  |     private function user_can_edit_entry( $echo = false ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1827 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1828 |  |  |         $error = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1829 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1830 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1831 |  |  |          *  1. Permalinks are turned off | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1832 |  |  |          *  2. There are two entries embedded using oEmbed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1833 |  |  |          *  3. One of the entries has just been saved | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1834 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1835 |  |  |         if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1836 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1837 |  |  |             $error = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1838 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1839 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1840 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1841 |  |  |         if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1842 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1843 |  |  |             $error = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1844 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1845 |  |  |         } elseif( ! $this->verify_nonce() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1846 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1847 |  |  |             /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1848 |  |  |              * If the Entry is embedded, there may be two entries on the same page. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1849 |  |  |              * If that's the case, and one is being edited, the other should fail gracefully and not display an error. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1850 |  |  |              */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1851 |  |  |             if( GravityView_oEmbed::getInstance()->get_entry_id() ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1852 |  |  |                 $error = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1853 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1854 |  |  |                 $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview'); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1855 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1856 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1857 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1858 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1859 |  |  |         if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1860 |  |  |             $error = __( 'You do not have permission to edit this entry.', 'gravityview'); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1861 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1862 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1863 |  |  |         if( $this->entry['status'] === 'trash' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1864 |  |  |             $error = __('You cannot edit the entry; it is in the trash.', 'gravityview' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1865 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1866 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1867 |  |  |         // No errors; everything's fine here! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1868 |  |  |         if( empty( $error ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1869 |  |  |             return true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1870 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1871 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1872 |  |  |         if( $echo && $error !== true ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1873 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1874 |  |  | 	        $error = esc_html( $error ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1875 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1876 |  |  | 	        /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1877 |  |  | 	         * @since 1.9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1878 |  |  | 	         */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1879 |  |  | 	        if ( ! empty( $this->entry ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1880 |  |  | 		        $error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1881 |  |  | 	        } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1882 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1883 |  |  |             echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error'); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1884 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1885 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1886 |  |  |         do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1887 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1888 |  |  |         return false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1889 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1890 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1891 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1892 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1893 |  |  |      * Check whether a field is editable by the current user, and optionally display an error message | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1894 |  |  |      * @uses  GravityView_Edit_Entry->check_user_cap_edit_field() Check user capabilities | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1895 |  |  |      * @param  array  $field Field or field settings array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1896 |  |  |      * @param  boolean $echo  Whether to show error message telling user they aren't allowed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1897 |  |  |      * @return boolean         True: user can edit the current field; False: nope, they can't. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1898 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1899 |  |  |     private function user_can_edit_field( $field, $echo = false ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1900 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1901 |  |  |         $error = NULL; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1902 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1903 |  |  |         if( ! $this->check_user_cap_edit_field( $field ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1904 |  |  |             $error = __( 'You do not have permission to edit this field.', 'gravityview'); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1905 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1906 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1907 |  |  |         // No errors; everything's fine here! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1908 |  |  |         if( empty( $error ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1909 |  |  |             return true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1910 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1911 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1912 |  |  |         if( $echo ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1913 |  |  |             echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error'); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1914 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1915 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1916 |  |  |         do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1917 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1918 |  |  |         return false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1919 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1920 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1921 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1922 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1923 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1924 |  |  |      * checks if user has permissions to edit a specific field | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1925 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1926 |  |  |      * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_field for maximum security!! | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1927 |  |  |      * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1928 |  |  |      * @param  [type] $field [description] | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1929 |  |  |      * @return bool | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1930 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1931 |  |  |     private function check_user_cap_edit_field( $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1932 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1933 |  |  |         // If they can edit any entries (as defined in Gravity Forms), we're good. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1934 |  |  |         if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1935 |  |  |             return true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1936 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1937 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1938 |  |  |         $field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1939 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1940 |  |  |         // If the field has custom editing capaibilities set, check those | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1941 |  |  |         if( $field_cap ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1942 |  |  |             return GVCommon::has_cap( $field['allow_edit_cap'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1943 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1944 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1945 |  |  |         return false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1946 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1947 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1948 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1949 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1950 |  |  |      * Is the current nonce valid for editing the entry? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1951 |  |  |      * @return boolean | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1952 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1953 |  |  |     public function verify_nonce() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1954 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1955 |  |  |         // Verify form submitted for editing single | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1956 |  |  |         if( $this->is_edit_entry_submission() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1957 |  |  |             $valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1958 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1959 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1960 |  |  |         // Verify | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1961 |  |  |         else if( ! $this->is_edit_entry() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1962 |  |  |             $valid = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1963 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1964 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1965 |  |  |         else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1966 |  |  |             $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1967 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1968 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1969 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1970 |  |  |          * @filter `gravityview/edit_entry/verify_nonce` Override Edit Entry nonce validation. Return true to declare nonce valid. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1971 |  |  |          * @since 1.13 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1972 |  |  |          * @param int|boolean $valid False if invalid; 1 or 2 when nonce was generated | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1973 |  |  |          * @param string $nonce_field Key used when validating submissions. Default: is_gv_edit_entry | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1974 |  |  |          */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1975 |  |  |         $valid = apply_filters( 'gravityview/edit_entry/verify_nonce', $valid, self::$nonce_field ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1976 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1977 |  |  |         return $valid; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1978 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1979 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 1980 |  |  |  | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 1981 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 1982 |  |  | } //end class | 
            
                        
The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.
The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.
To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.