PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.0
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.0
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/models/FrmPersonalData.php +19 -34 6.295.0 View file →
@@ -4,16 +4,10 @@
4 4 }
5 5
6 6 class FrmPersonalData {
7 7
8 - /**
9 - * @var int
10 - */
11 8 private $limit = 200;
12 9
13 - /**
14 - * @var int
15 - */
16 10 private $page = 1;
17 11
18 12 public function __construct() {
19 13 add_filter( 'wp_privacy_personal_data_erasers', array( $this, 'register_data_eraser' ) );
@@ -55,14 +49,8 @@
55 49
56 50 return $erasers;
57 51 }
58 52
59 - /**
60 - * @param string $email
61 - * @param int $page
62 - *
63 - * @return array
64 - */
65 53 public function export_data( $email, $page = 1 ) {
66 54 $this->page = absint( $page );
67 55
68 56 $data_to_export = array(
@@ -70,14 +58,13 @@
70 58 'done' => true,
71 59 );
72 60
73 61 $entries = $this->get_user_entries( $email );
74 -
75 - if ( ! $entries ) {
62 + if ( empty( $entries ) ) {
76 63 return $data_to_export;
77 64 }
78 65
79 - foreach ( $entries as $entry ) {
66 + foreach ( (array) $entries as $entry ) {
80 67 $data_to_export['data'][] = array(
81 68 'group_id' => 'formidable',
82 69 'group_label' => __( 'Form Submissions', 'formidable' ),
83 70 'item_id' => esc_attr( 'entry-' . $entry ),
@@ -90,11 +77,8 @@
90 77 return $data_to_export;
91 78 }
92 79
93 80 /**
94 - * @param string $email
95 - * @param int $page
96 - *
97 81 * @return array
98 82 */
99 83 public function erase_data( $email, $page = 1 ) {
100 84 $data_removed = array(
@@ -103,22 +87,21 @@
103 87 'messages' => array(),
104 88 'done' => true,
105 89 );
106 90
107 - if ( ! $email ) {
91 + if ( empty( $email ) ) {
108 92 return $data_removed;
109 93 }
110 94
111 95 $this->page = absint( $page );
112 96 $entries = $this->get_user_entries( $email );
113 -
114 - if ( ! $entries ) {
97 + if ( empty( $entries ) ) {
115 98 return $data_removed;
116 99 }
117 100
118 101 // TODO: Add an option to anonymize the entries with wp_privacy_anonymize_data( 'email', 'e@e.com' );
119 102
120 - foreach ( $entries as $entry ) {
103 + foreach ( (array) $entries as $entry ) {
121 104 $removed = FrmEntry::destroy( $entry );
122 105
123 106 if ( $removed ) {
124 107 $data_removed['items_removed'] = true;
@@ -137,9 +120,9 @@
137 120 * or with a field value that matches the email address
138 121 *
139 122 * @param string $email
140 123 *
141 - * @return array Entry ids
124 + * @return array of entry ids
142 125 */
143 126 private function get_user_entries( $email ) {
144 127 $query_args = array(
145 128 'order_by' => 'item_id ASC',
@@ -145,28 +128,30 @@
145 128 'order_by' => 'item_id ASC',
146 129 'limit' => $this->get_current_page(),
147 130 );
148 131
149 - $user = get_user_by( 'email', $email );
132 + $user = get_user_by( 'email', $email );
133 +
150 134 $entries_by_email = FrmDb::get_col( 'frm_item_metas', array( 'meta_value' => $email ), 'item_id', $query_args );
151 135
152 - if ( ! $user ) {
153 - // No matching user, so return the entry ids we have
136 + if ( empty( $user ) ) {
137 + // no matching user, so return the entry ids we have
154 138 return $entries_by_email;
155 139 }
156 140
157 141 $query_args['order_by'] = 'id ASC';
158 - $entries_by_user = FrmDb::get_col( 'frm_items', array( 'user_id' => $user->ID ), 'id', $query_args );
159 - $entry_ids = array_merge( $entries_by_user, $entries_by_email );
160 142
161 - return array_unique( array_filter( $entry_ids ) );
143 + $entries_by_user = FrmDb::get_col( 'frm_items', array( 'user_id' => $user->ID ), 'id', $query_args );
144 +
145 + $entry_ids = array_merge( (array) $entries_by_user, (array) $entries_by_email );
146 + $entry_ids = array_unique( array_filter( $entry_ids ) );
147 +
148 + return $entry_ids;
162 149 }
163 150
164 - /**
165 - * @return string
166 - */
167 151 private function get_current_page() {
168 152 $start = ( $this->page - 1 ) * $this->limit;
153 +
169 154 return FrmDb::esc_limit( $start . ',' . $this->limit );
170 155 }
171 156
172 157 /**
@@ -174,11 +159,11 @@
174 159 *
175 160 * @return array
176 161 */
177 162 private function prepare_entry_data( $entry ) {
178 - $entry = FrmEntry::getOne( $entry, true );
163 + $entry = FrmEntry::getOne( $entry, true );
164 +
179 165 $entry_data = array();
180 -
181 166 foreach ( $entry->metas as $field_id => $meta ) {
182 167 $field = FrmField::getOne( $field_id );
183 168
184 169 $entry_data[] = array(