PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.0.5
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.0.5
3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / includes / admin / class-evf-admin-forms.php
everest-forms / includes / admin Last commit date
builder 1 year ago form-migrator 2 years ago plugin-updates 8 years ago settings 1 year ago views 1 year ago class-evf-admin-addons.php 2 years ago class-evf-admin-assets.php 1 year ago class-evf-admin-builder.php 8 years ago class-evf-admin-dashboard.php 2 years ago class-evf-admin-deactivation-feedback.php 3 years ago class-evf-admin-editor.php 4 years ago class-evf-admin-embed-wizard.php 2 years ago class-evf-admin-entries-table-list.php 2 years ago class-evf-admin-entries.php 2 years ago class-evf-admin-form-templates.php 1 year ago class-evf-admin-forms-table-list.php 2 years ago class-evf-admin-forms.php 2 years ago class-evf-admin-import-export.php 4 years ago class-evf-admin-menus.php 2 years ago class-evf-admin-notices.php 1 year ago class-evf-admin-preview-confirmation.php 1 year ago class-evf-admin-settings.php 1 year ago class-evf-admin-tools.php 2 years ago class-evf-admin-welcome.php 2 years ago class-evf-admin.php 2 years ago evf-admin-functions.php 1 year ago
class-evf-admin-forms.php
230 lines
1 <?php
2 /**
3 * EverestForms Admin Forms Class
4 *
5 * @package EverestForms\Admin
6 * @since 1.2.0
7 */
8
9 defined( 'ABSPATH' ) || exit;
10
11 /**
12 * EVF_Admin_Forms class.
13 */
14 class EVF_Admin_Forms {
15
16 /**
17 * Initialize the forms admin actions.
18 */
19 public function __construct() {
20 add_action( 'admin_init', array( $this, 'actions' ) );
21 add_action( 'deleted_post', array( $this, 'delete_entries' ) );
22 add_filter( 'wp_untrash_post_status', array( $this, 'untrash_form_status' ), 10, 2 );
23 add_action( 'trashed_post', array( $this, 'remove_post_from_import_tracker' ), 10, 2 );
24 }
25
26 /**
27 * Check if is forms page.
28 *
29 * @return bool
30 */
31 private function is_forms_page() {
32 return isset( $_GET['page'] ) && 'evf-builder' === $_GET['page']; // phpcs:ignore WordPress.Security.NonceVerification
33 }
34
35 /**
36 * Page output.
37 */
38 public static function page_output() {
39 global $current_tab;
40
41 if ( isset( $_GET['form_id'] ) && $current_tab ) { // phpcs:ignore WordPress.Security.NonceVerification
42 $form = evf()->form->get( absint( $_GET['form_id'] ) ); // phpcs:ignore WordPress.Security.NonceVerification
43 $form_id = is_object( $form ) ? absint( $form->ID ) : absint( $_GET['form_id'] ); // phpcs:ignore WordPress.Security.NonceVerification
44 $form_data = is_object( $form ) ? evf_decode( $form->post_content ) : false;
45
46 include 'views/html-admin-page-builder.php';
47 } elseif ( isset( $_GET['create-form'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
48
49 EVF_Admin_Form_Templates::load_template_view();
50 } else {
51 self::table_list_output();
52 }
53 }
54
55 /**
56 * Table list output.
57 */
58 public static function table_list_output() {
59 global $forms_table_list;
60
61 $forms_table_list->process_bulk_action();
62 $forms_table_list->prepare_items();
63 ?>
64 <div class="wrap">
65 <h1 class="wp-heading-inline"><?php esc_html_e( 'All Forms', 'everest-forms' ); ?></h1>
66 <?php if ( current_user_can( 'everest_forms_create_forms' ) ) : ?>
67 <a href="<?php echo esc_url( admin_url( 'admin.php?page=evf-builder&create-form=1' ) ); ?>" class="page-title-action"><?php esc_html_e( 'Add New', 'everest-forms' ); ?></a>
68 <?php endif; ?>
69 <hr class="wp-header-end">
70
71 <?php settings_errors(); ?>
72
73 <form id="form-list" method="post">
74 <input type="hidden" name="page" value="everest-forms"/>
75 <?php
76 $forms_table_list->views();
77 $forms_table_list->search_box( __( 'Search Forms', 'everest-forms' ), 'everest-forms' );
78 $forms_table_list->display();
79
80 wp_nonce_field( 'save', 'everest-forms_nonce' );
81 ?>
82 </form>
83 </div>
84 <?php
85 }
86
87 /**
88 * Forms admin actions.
89 */
90 public function actions() {
91 if ( $this->is_forms_page() ) {
92 // Empty trash.
93 if ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
94 $this->empty_trash();
95 }
96
97 // Duplicate form.
98 if ( isset( $_REQUEST['action'] ) && 'duplicate_form' === $_REQUEST['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification
99 $this->duplicate_form();
100 }
101 }
102 }
103
104 /**
105 * Empty Trash.
106 */
107 private function empty_trash() {
108 check_admin_referer( 'bulk-forms' );
109
110 $count = 0;
111 $form_ids = get_posts(
112 array(
113 'post_type' => 'everest_form',
114 'ignore_sticky_posts' => true,
115 'nopaging' => true,
116 'post_status' => 'trash',
117 'fields' => 'ids',
118 )
119 );
120
121 foreach ( $form_ids as $form_id ) {
122 if ( wp_delete_post( $form_id, true ) ) {
123 ++$count;
124 }
125 }
126
127 add_settings_error(
128 'empty_trash',
129 'empty_trash',
130 /* translators: %d: number of forms */
131 sprintf( _n( '%d form permanently deleted.', '%d forms permanently deleted.', $count, 'everest-forms' ), $count ),
132 'updated'
133 );
134 }
135
136 /**
137 * Duplicate form.
138 */
139 private function duplicate_form() {
140 if ( empty( $_REQUEST['form_id'] ) ) {
141 wp_die( esc_html__( 'No form to duplicate has been supplied!', 'everest-forms' ) );
142 }
143
144 $form_id = isset( $_REQUEST['form_id'] ) ? absint( $_REQUEST['form_id'] ) : '';
145
146 check_admin_referer( 'everest-forms-duplicate-form_' . $form_id );
147
148 $duplicate_id = evf()->form->duplicate( $form_id );
149
150 // Redirect to the edit screen for the new form page.
151 wp_safe_redirect( admin_url( 'admin.php?page=evf-builder&tab=fields&form_id=' . $duplicate_id ) );
152 exit;
153 }
154
155 /**
156 * Remove entry and its associated meta.
157 *
158 * When form is deleted then it also deletes its entries meta.
159 *
160 * @param int $postid Post ID.
161 */
162 public function delete_entries( $postid ) {
163 global $wpdb;
164
165 $entries = evf_get_entries_ids( $postid );
166
167 // Delete entry.
168 if ( ! empty( $entries ) ) {
169 foreach ( $entries as $entry_id ) {
170 $wpdb->delete( $wpdb->prefix . 'evf_entries', array( 'entry_id' => $entry_id ), array( '%d' ) );
171 $wpdb->delete( $wpdb->prefix . 'evf_entrymeta', array( 'entry_id' => $entry_id ), array( '%d' ) );
172 }
173 }
174 }
175
176 /**
177 * Untrash form status.
178 *
179 * @since 1.7.5
180 *
181 * @param string $new_status The new status of the post being restored.
182 * @param int $post_id The ID of the post being restored.
183 * @return string
184 */
185 public function untrash_form_status( $new_status, $post_id ) {
186 return current_user_can( 'everest_forms_edit_forms', $post_id ) ? 'publish' : $new_status;
187 }
188 /**
189 * Remove the post from form migrator import tracker.
190 *
191 * @param [int] $form_id The form ID.
192 * @param [string] $previous_status The previous status.
193 * @since 2.0.8
194 */
195 public function remove_post_from_import_tracker( $form_id, $previous_status = '' ) {
196 $form = evf()->form->get(
197 absint( $form_id ),
198 array(
199 'content_only' => true,
200 )
201 );
202
203 if ( empty( $form ) ) {
204 return;
205 }
206 $imported_from = get_post_meta( $form_id, 'evf_fm_imported_from' );
207
208 if ( empty( $imported_from ) ) {
209 return;
210 }
211 if ( ! isset( $imported_from[0]['form_from'] ) || ! isset( $imported_from[0]['form_from'] ) ) {
212 return;
213 }
214 $form_slug = $imported_from[0]['form_from'];
215 $imported_from_form_id = $imported_from[0]['form_id'];
216 $imported_form_list = get_option( 'evf_fm_' . $form_slug . '_imported_form_list', array() );
217
218 $is_form_imported = array_search( $imported_from_form_id, $imported_form_list );
219
220 if ( ! $is_form_imported ) {
221 return;
222 }
223
224 unset( $imported_form_list[ $is_form_imported ] );
225 update_option( 'evf_fm_' . $form_slug . '_imported_form_list', $imported_form_list );
226 }
227 }
228
229 new EVF_Admin_Forms();
230