PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.23
MxChat – AI Chatbot & Content Generation for WordPress v3.2.23
3.2.25 3.2.24 3.2.23 3.2.22 3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 All 156 releases
← All changes | includes/class-mxchat-privacy.php +24 -0 3.2.19 → 3.2.23 View file →
@@ -69,8 +69,11 @@
69 69 'mxchat_history_',
70 70 'mxchat_lead_del_email_',
71 71 'mxchat_lead_del_name_',
72 72 'mxchat_lead_del_ts_',
73 + 'mxchat_lead_del_consent_',
74 + 'mxchat_lead_del_consent_label_',
75 + 'mxchat_lead_del_consent_at_',
73 76 // NOTE: mxchat_session_owner_ (b64b77) and mxchat_email_ /
74 77 // mxchat_name_ / mxchat_agent_name_ (5658f2) moved out of wp_options
75 78 // into the mxchat_sessions table. The eraser calls
76 79 // MxChat_Session_Store::delete_session(), which drops the row AND the
@@ -225,8 +228,26 @@
225 228 if (!empty($identifiers)) {
226 229 $data[] = array('name' => __('Visitor identifier', 'mxchat'), 'value' => implode(', ', array_keys($identifiers)));
227 230 }
228 231
232 + // Lead-capture consent record (b062c4). If we hold a consent
233 + // decision about the subject, the export must show it — same
234 + // Article 15 parity rule as the click rows below.
235 + if (class_exists('MxChat_Session_Store')) {
236 + $consent_state = MxChat_Session_Store::get($sid, 'consent', '');
237 + if ($consent_state !== '' && $consent_state !== false) {
238 + $data[] = array('name' => __('Lead-capture consent', 'mxchat'), 'value' => (string) $consent_state);
239 + $consent_at = MxChat_Session_Store::get($sid, 'consent_at', '');
240 + if (!empty($consent_at)) {
241 + $data[] = array('name' => __('Consent recorded', 'mxchat'), 'value' => (string) $consent_at);
242 + }
243 + $consent_label = MxChat_Session_Store::get($sid, 'consent_label', '');
244 + if (!empty($consent_label)) {
245 + $data[] = array('name' => __('Consent text shown', 'mxchat'), 'value' => wp_strip_all_tags((string) $consent_label));
246 + }
247 + }
248 + }
249 +
229 250 foreach ($rows as $row) {
230 251 $data[] = array(
231 252 'name' => sprintf('[%s] %s', $row->timestamp, self::role_label($row->role)),
232 253 'value' => $row->message,
@@ -451,8 +472,11 @@
451 472 $sid = substr($opt->option_name, strlen('mxchat_lead_del_email_'));
452 473 delete_option('mxchat_lead_del_email_' . $sid);
453 474 delete_option('mxchat_lead_del_name_' . $sid);
454 475 delete_option('mxchat_lead_del_ts_' . $sid);
476 + delete_option('mxchat_lead_del_consent_' . $sid);
477 + delete_option('mxchat_lead_del_consent_label_' . $sid);
478 + delete_option('mxchat_lead_del_consent_at_' . $sid);
455 479 } else {
456 480 $sid = substr($opt->option_name, strlen('mxchat_email_'));
457 481 delete_option('mxchat_email_' . $sid);
458 482 delete_option('mxchat_name_' . $sid);