/** * When a tracked email is opened. * * @since 1.3 * @param arr $data Data from the $_GET request * @return void */ function mdjm_track_open_email($data) { if (!isset($data['tracker_id'])) { die; } $tracking_id = $data['tracker_id']; $current_status = get_post_status($tracking_id); if (!$current_status || 'opened' == $current_status) { die; } do_action('mdjm_pre_track_email_opened', $tracking_id); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); $invpicture = MDJM_PLUGIN_DIR . '/assets/images/invpicture.png'; $invpicture = apply_filters('mdjm_email_track_invpicture', $invpicture); $handle = fopen($invpicture, 'r'); if (!$handle) { die; } header('Content-type: image/png'); $contents = fread($handle, filesize($invpicture)); fclose($handle); echo $contents; mdjm_email_set_tracking_status($tracking_id, 'opened'); do_action('mdjm_post_track_email_opened', $tracking_id); die; }
/** * Store the communication. * * @since 1.3 */ public function update_tracking_status() { if (!empty($this->tracking_id)) { mdjm_email_set_tracking_status($this->tracking_id, 'sent'); } }