| @@ -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); |