/** * update_approved function. * * @access public * @static * @param int $lead_id (default: 0) * @param int $approved (default: 0) * @param int $form_id (default: 0) * @param int $approvedcolumn (default: 0) * @return boolean True: It worked; False: it failed */ public static function update_approved($entry_id = 0, $approved = 0, $form_id = 0, $approvedcolumn = 0) { if (!class_exists('GFAPI')) { do_action('gravityview_log_error', __METHOD__ . 'GFAPI does not exist'); return false; } if (empty($approvedcolumn)) { $approvedcolumn = self::get_approved_column($form_id); } //get the entry $entry = GFAPI::get_entry($entry_id); //update entry $entry[(string) $approvedcolumn] = $approved; /** @var bool|WP_Error $result */ $result = GFAPI::update_entry($entry); /** * GFAPI::update_entry() doesn't trigger `gform_after_update_entry`, so we trigger updating the meta ourselves. */ self::update_approved_meta($entry_id, $approved); // add note to entry if ($result === true) { $note = empty($approved) ? __('Disapproved the Entry for GravityView', 'gravityview') : __('Approved the Entry for GravityView', 'gravityview'); if (class_exists('GravityView_Entry_Notes')) { global $current_user; get_currentuserinfo(); GravityView_Entry_Notes::add_note($entry_id, $current_user->ID, $current_user->display_name, $note); } /** * Destroy the cache for this form * @see class-cache.php * @since 1.5.1 */ do_action('gravityview_clear_form_cache', $form_id); } else { if (is_wp_error($result)) { do_action('gravityview_log_error', __METHOD__ . sprintf(' - Entry approval not updated: %s', $result->get_error_message())); $result = false; } } return $result; }
/** * Add a note. * * @since 1.17 * * @see GravityView_Entry_Notes::add_note This method is mostly a wrapper * * @param array $entry * @param array $data Note details array * * @return int|WP_Error */ private function add_note($entry, $data) { global $current_user, $wpdb; $user_data = get_userdata($current_user->ID); $note_content = trim($data['gv-note-content']); if (empty($note_content)) { return new WP_Error('gv-add-note-empty', __('The note is empty.', 'gravityview')); } $return = GravityView_Entry_Notes::add_note($entry['id'], $user_data->ID, $user_data->display_name, $note_content, 'gravityview/field/notes'); return $return; }
/** * When the entry creator is changed, add a note to the entry * @param array $form GF entry array * @param int $entry_id Entry ID * @return void */ function update_entry_creator($form, $entry_id) { global $current_user; // Update the entry $created_by = absint(rgpost('created_by')); RGFormsModel::update_lead_property($entry_id, 'created_by', $created_by); // If the creator has changed, let's add a note about who it used to be. $originally_created_by = rgpost('originally_created_by'); // If there's no owner and there didn't used to be, keep going if (empty($originally_created_by) && empty($created_by)) { return; } // If the values have changed if (absint($originally_created_by) !== absint($created_by)) { $user_data = get_userdata($current_user->ID); $user_format = _x('%s (ID #%d)', 'The name and the ID of users who initiated changes to entry ownership', 'gravityview'); $original_name = $created_by_name = esc_attr_x('No User', 'To show that the entry was unassigned from an actual user to no user.', 'gravityview'); if (!empty($originally_created_by)) { $originally_created_by_user_data = get_userdata($originally_created_by); $original_name = sprintf($user_format, $originally_created_by_user_data->display_name, $originally_created_by_user_data->ID); } if (!empty($created_by)) { $created_by_user_data = get_userdata($created_by); $created_by_name = sprintf($user_format, $created_by_user_data->display_name, $created_by_user_data->ID); } GravityView_Entry_Notes::add_note($entry_id, $current_user->ID, $user_data->display_name, sprintf(__('Changed entry creator from %s to %s', 'gravityview'), $original_name, $created_by_name), 'note'); } }
/** * @since 1.15 * @param $entry_ids */ function _set_up_notes($entry_ids) { $disapproved = __('Disapproved the Entry for GravityView', 'gravityview'); $approved = __('Approved the Entry for GravityView', 'gravityview'); foreach ($entry_ids as $entry_id) { $added_notes = 0; // Deleted because it's "gravityview" note type GravityView_Entry_Notes::add_note($entry_id, -1, new WP_UnitTest_Generator_Sequence('To be deleted %s'), 'NOTE!', 'gravityview'); // TO BE DELETED $added_notes++; // Deleted because it's the same value as $approved GravityView_Entry_Notes::add_note($entry_id, -1, new WP_UnitTest_Generator_Sequence('To be deleted %s'), $approved, 'note'); $added_notes++; // Deleted because it's the same value as $disapproved GravityView_Entry_Notes::add_note($entry_id, -1, new WP_UnitTest_Generator_Sequence('To be deleted %s'), $disapproved, 'note'); $added_notes++; // NOT DELETED GravityView_Entry_Notes::add_note($entry_id, -1, new WP_UnitTest_Generator_Sequence('NOT DELETED %s'), 'NOT DELETED', 'note'); // NOT DELETED ("note" type) $added_notes++; $notes = GravityView_Entry_Notes::get_notes($entry_id); $this->assertEquals(sizeof($notes), $added_notes); } }
/** * update_approved function. * * @access public * @static * @param int $entry_id (default: 0) * @param int $approved (default: 0) * @param int $form_id (default: 0) * @param int $approvedcolumn (default: 0) * @return boolean True: It worked; False: it failed */ public static function update_approved($entry_id = 0, $approved = 0, $form_id = 0, $approvedcolumn = 0) { if (!class_exists('GFAPI')) { do_action('gravityview_log_error', __METHOD__ . 'GFAPI does not exist'); return false; } if (empty($approvedcolumn)) { $approvedcolumn = self::get_approved_column($form_id); } //get the entry $entry = GFAPI::get_entry($entry_id); //update entry $entry[(string) $approvedcolumn] = $approved; /** @var bool|WP_Error $result */ $result = GFAPI::update_entry($entry); /** * GFAPI::update_entry() doesn't trigger `gform_after_update_entry`, so we trigger updating the meta ourselves. */ self::update_approved_meta($entry_id, $approved, $form_id); // add note to entry if ($result === true) { $note = empty($approved) ? __('Disapproved the Entry for GravityView', 'gravityview') : __('Approved the Entry for GravityView', 'gravityview'); /** * @filter `gravityview/approve_entries/add-note` Add a note when the entry has been approved or disapproved? * @since 1.16.3 * @param bool $add_note True: Yep, add that note! False: Do not, under any circumstances, add that note! */ $add_note = apply_filters('gravityview/approve_entries/add-note', true); if ($add_note && class_exists('GravityView_Entry_Notes')) { $current_user = wp_get_current_user(); GravityView_Entry_Notes::add_note($entry_id, $current_user->ID, $current_user->display_name, $note); } /** * Destroy the cache for this form * @see class-cache.php * @since 1.5.1 */ do_action('gravityview_clear_form_cache', $form_id); } else { if (is_wp_error($result)) { do_action('gravityview_log_error', __METHOD__ . sprintf(' - Entry approval not updated: %s', $result->get_error_message())); $result = false; } } return $result; }