MixpanelBaseProducer.php
2 years ago
MixpanelEvents.php
2 years ago
MixpanelGroups.php
2 years ago
MixpanelPeople.php
2 years ago
index.php
2 years ago
MixpanelPeople.php
61 lines
| 1 | <?php |
| 2 | if (!defined('ABSPATH')) exit; |
| 3 | require_once(dirname(__FILE__) . "/MixpanelBaseProducer.php"); |
| 4 | class Producers_MixpanelPeople extends Producers_MixpanelBaseProducer { |
| 5 | private function _constructPayload($distinct_id, $operation, $value, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 6 | $payload = array( |
| 7 | '$token' => $this->_token, |
| 8 | '$distinct_id' => $distinct_id, |
| 9 | '$time' => microtime(true), |
| 10 | $operation => $value |
| 11 | ); |
| 12 | if ($ip !== null) $payload['$ip'] = $ip; |
| 13 | if ($ignore_time === true) $payload['$ignore_time'] = true; |
| 14 | if ($ignore_alias === true) $payload['$ignore_alias'] = true; |
| 15 | return $payload; |
| 16 | } |
| 17 | public function set($distinct_id, $props, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 18 | $payload = $this->_constructPayload($distinct_id, '$set', $props, $ip, $ignore_time, $ignore_alias); |
| 19 | $this->enqueue($payload); |
| 20 | } |
| 21 | public function setOnce($distinct_id, $props, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 22 | $payload = $this->_constructPayload($distinct_id, '$set_once', $props, $ip, $ignore_time, $ignore_alias); |
| 23 | $this->enqueue($payload); |
| 24 | } |
| 25 | public function remove($distinct_id, $props, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 26 | $payload = $this->_constructPayload($distinct_id, '$unset', $props, $ip, $ignore_time, $ignore_alias); |
| 27 | $this->enqueue($payload); |
| 28 | } |
| 29 | public function increment($distinct_id, $prop, $val, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 30 | $payload = $this->_constructPayload($distinct_id, '$add', array("$prop" => $val), $ip, $ignore_time, $ignore_alias); |
| 31 | $this->enqueue($payload); |
| 32 | } |
| 33 | public function append($distinct_id, $prop, $val, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 34 | $operation = gettype($val) == "array" ? '$union' : '$append'; |
| 35 | $payload = $this->_constructPayload($distinct_id, $operation, array("$prop" => $val), $ip, $ignore_time, $ignore_alias); |
| 36 | $this->enqueue($payload); |
| 37 | } |
| 38 | public function trackCharge($distinct_id, $amount, $timestamp = null, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 39 | $timestamp = $timestamp == null ? time() : $timestamp; |
| 40 | $date_iso = date("c", $timestamp); |
| 41 | $transaction = array( |
| 42 | '$time' => $date_iso, |
| 43 | '$amount' => $amount |
| 44 | ); |
| 45 | $val = array('$transactions' => $transaction); |
| 46 | $payload = $this->_constructPayload($distinct_id, '$append', $val, $ip, $ignore_time, $ignore_alias); |
| 47 | $this->enqueue($payload); |
| 48 | } |
| 49 | public function clearCharges($distinct_id, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 50 | $payload = $this->_constructPayload($distinct_id, '$set', array('$transactions' => array()), $ip, $ignore_time, $ignore_alias); |
| 51 | $this->enqueue($payload); |
| 52 | } |
| 53 | public function deleteUser($distinct_id, $ip = null, $ignore_time = false, $ignore_alias = false) { |
| 54 | $payload = $this->_constructPayload($distinct_id, '$delete', "", $ip, $ignore_time, $ignore_alias); |
| 55 | $this->enqueue($payload); |
| 56 | } |
| 57 | function _getEndpoint() { |
| 58 | return $this->_options['people_endpoint']; |
| 59 | } |
| 60 | } |
| 61 |