Changeset 2215120
- Timestamp:
- 12/19/2019 01:54:55 PM (6 years ago)
- Location:
- experience-manager/trunk
- Files:
-
- 42 added
- 14 edited
-
assets/introjs (added)
-
assets/introjs/intro.min.js (added)
-
assets/introjs/introjs-rtl.min.css (added)
-
assets/introjs/introjs.min.css (added)
-
assets/semantic (added)
-
assets/semantic/semantic.min.css (added)
-
assets/semantic/semantic.min.js (added)
-
assets/semantic/themes (added)
-
assets/semantic/themes/default (added)
-
assets/semantic/themes/default/assets (added)
-
assets/semantic/themes/default/assets/fonts (added)
-
assets/semantic/themes/default/assets/fonts/brand-icons.eot (added)
-
assets/semantic/themes/default/assets/fonts/brand-icons.svg (added)
-
assets/semantic/themes/default/assets/fonts/brand-icons.ttf (added)
-
assets/semantic/themes/default/assets/fonts/brand-icons.woff (added)
-
assets/semantic/themes/default/assets/fonts/brand-icons.woff2 (added)
-
assets/semantic/themes/default/assets/fonts/icons.eot (added)
-
assets/semantic/themes/default/assets/fonts/icons.otf (added)
-
assets/semantic/themes/default/assets/fonts/icons.svg (added)
-
assets/semantic/themes/default/assets/fonts/icons.ttf (added)
-
assets/semantic/themes/default/assets/fonts/icons.woff (added)
-
assets/semantic/themes/default/assets/fonts/icons.woff2 (added)
-
assets/semantic/themes/default/assets/fonts/outline-icons.eot (added)
-
assets/semantic/themes/default/assets/fonts/outline-icons.svg (added)
-
assets/semantic/themes/default/assets/fonts/outline-icons.ttf (added)
-
assets/semantic/themes/default/assets/fonts/outline-icons.woff (added)
-
assets/semantic/themes/default/assets/fonts/outline-icons.woff2 (added)
-
assets/semantic/themes/default/assets/images (added)
-
assets/semantic/themes/default/assets/images/flags.png (added)
-
assets/vue (added)
-
assets/vue/vue.min.js (added)
-
experience-manager.php (modified) (8 diffs)
-
images/audience.png (added)
-
images/settings.png (added)
-
includes/backend/class.tma_settings.php (modified) (1 diff)
-
includes/backend/segment/categories.php (modified) (1 diff)
-
includes/backend/segment/class.segment-editor-help-wizard.php (added)
-
includes/backend/segment/class.segment-editor-help.php (added)
-
includes/backend/segment/class.segment-editor-metabox.php (added)
-
includes/backend/segment/class.segment-editor.php (modified) (10 diffs)
-
includes/backend/segment/class.segment-type.php (modified) (2 diffs)
-
includes/backend/segment/description.php (modified) (1 diff)
-
includes/class.plugins.php (modified) (1 diff)
-
includes/class.request.php (modified) (3 diffs)
-
includes/frontend/class.tma_script_helper.php (modified) (5 diffs)
-
includes/modules/events/class.ecommerce_base.php (added)
-
includes/modules/events/class.ecommerce_events.php (modified) (3 diffs)
-
includes/modules/events/class.edd_tracker.php (added)
-
includes/modules/events/class.woocommerce_tracker.php (modified) (6 diffs)
-
includes/modules/messages/elementor (added)
-
includes/modules/messages/elementor/class.base.php (added)
-
includes/modules/messages/elementor/class.elementor-popup.php (added)
-
includes/modules/messages/elementor/index.php (added)
-
includes/modules/messages/popup-maker/class.popup-maker.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
tma-autoload.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
experience-manager/trunk/experience-manager.php
r2201127 r2215120 5 5 Description: The integration for the experience platform. 6 6 Author: Thorsten Marx 7 Version: 2. 3.07 Version: 2.4.0 8 8 Author URI: https://wp-digitalexperience.com/ 9 9 Text Domain: tma-webtools … … 14 14 } 15 15 16 define("TMA_EXPERIENCE_MANAGER_VERSION", "2. 3.0");16 define("TMA_EXPERIENCE_MANAGER_VERSION", "2.4.0"); 17 17 define("TMA_EXPERIENCE_MANAGER_SEGMENT_MATCHING_ALL", "all"); 18 18 define("TMA_EXPERIENCE_MANAGER_SEGMENT_MATCHING_ANY", "any"); … … 32 32 } 33 33 34 tma_exm_log("register segment postype"); 35 \TMA\ExperienceManager\Segment\SegmentType::getInstance()->register(); 36 \TMA\ExperienceManager\Segment\SegmentEditor::getInstance()->register(); 37 \TMA\ExperienceManager\Segment\SegmentEditorHelp::getInstance()->register(); 38 \TMA\ExperienceManager\Segment\SegmentEditorMetaBoxes::getInstance()->register(); 39 34 40 add_action("init", "tma_webtools_init"); 35 41 add_action("rest_api_init", "tma_webtools_rest_init"); 36 42 add_action("plugins_loaded", "tma_webtools_plugins_loaded"); 37 38 \TMA\ExperienceManager\Segment\SegmentType::getInstance()->register();39 \TMA\ExperienceManager\Segment\SegmentEditor::getInstance()->register();40 43 41 44 function tma_webtools_plugins_loaded() { … … 45 48 \TMA\ExperienceManager\Elementor_Integration::getInstance(); 46 49 \TMA\ExperienceManager\Elementor_Preview::getInstance(); 50 51 // \TMA\ExperienceManager\ElementorPopupIntegration::getInstance()->init(); 47 52 } 48 53 if (\TMA\ExperienceManager\Plugins::getInstance()->popup_maker()) { … … 55 60 new \TMA\ExperienceManager\Gutenberg_Integration(); 56 61 } 62 63 require_once 'includes/modules/events/class.ecommerce_events.php'; 57 64 } 58 65 59 66 function tma_webtools_rest_init() { 67 tma_exm_log("tma_webtools_rest_init"); 60 68 $tma_rest = new \TMA\ExperienceManager\TMA_Rest(); 61 62 // register_rest_route('experience-manager/v1', '/test', array(63 // 'methods' => \WP_REST_Server::READABLE,64 // 'callback' => function () {65 // return "test";66 //67 // },68 // ));69 69 } 70 70 71 71 function tma_webtools_init() { 72 72 73 tma_exm_log(" init");73 tma_exm_log("tma_webtools_init"); 74 74 wp_register_style('experience-manager', plugins_url('css/experience-manager.css', __FILE__)); 75 75 wp_enqueue_style('experience-manager'); … … 82 82 // IS not stored 83 83 //new TMA\ExperienceManager\TMA_Widget_Targeting(); 84 85 require_once 'includes/modules/events/class.ecommerce_events.php'; 86 87 tma_exm_log(is_preview() ? "preview" : "no preview"); 88 tma_exm_log(tma_exm_is_preview() ? "tma_preview" : "no tma_preview"); 84 //tma_exm_log(is_preview() ? "preview" : "no preview"); 85 //tma_exm_log(tma_exm_is_preview() ? "tma_preview" : "no tma_preview"); 89 86 90 87 require_once 'includes/backend/class.tma_wpadminbar.php'; … … 145 142 146 143 $tma_config = apply_filters("tma_config", $tma_config); 147 144 148 145 // $data = "var TMA_CONFIG = ". json_encode($tma_config); 149 146 // wp_register_script( 'webtools-dummy-handle', '' ); … … 158 155 function tma_webtools_hook_js() { 159 156 $scriptHelper = new \TMA\ExperienceManager\TMAScriptHelper(); 160 wp_enqueue_script( "webtools-library", $scriptHelper->getLibrary(), [], "2.0.0", false);161 wp_add_inline_script( "webtools-library", $scriptHelper->getCode());157 wp_enqueue_script("webtools-library", $scriptHelper->getLibrary(), [], "2.0.0", false); 158 wp_add_inline_script("webtools-library", $scriptHelper->getCode()); 162 159 } 163 160 -
experience-manager/trunk/includes/backend/class.tma_settings.php
r2096995 r2215120 34 34 function admin_menu() { 35 35 add_menu_page( 36 __("Experience Manager", "tma-webtools"), __("Experience Manager", "tma-webtools"), 'manage_options', 'experience-manager/pages/tma-webtools-admin.php', null, '', 50);36 __("Experience Manager", "tma-webtools"), __("Experience Manager", "tma-webtools"), 'manage_options', 'experience-manager/pages/tma-webtools-admin.php', null, plugins_url( 'experience-manager/images/settings.png' ), 50); 37 37 add_submenu_page('experience-manager/pages/tma-webtools-admin.php', __("Settings", "tma-webtools"), __("Settings", "tma-webtools"), 'manage_options', 'tma-webtools-setting-admin', array($this, 'plugin_page')); 38 38 } -
experience-manager/trunk/includes/backend/segment/categories.php
r2192433 r2215120 58 58 </script> 59 59 <?php } ?> 60 61 <?php if (\TMA\ExperienceManager\Plugins::getInstance()->easydigitaldownloads()) { ?> 62 <h2><?php echo __('Easy Digital Downloads Categories:', "tma-webtools"); ?></h2> 63 64 <div id="exm-edd-category-select-categories"> 65 <?php wp_dropdown_categories('show_count=1&hierarchical=1&taxonomy=download_category'); ?> 66 <button id="exm-edd-category-select"><?php echo __("Category path", "tma-webtools") ?></button> 67 <b id="exm_edd_cat_path"></b> 68 </div> 69 70 <script> 71 webtools.domReady(function () { 72 webtools.Tools.on(document.getElementById("exm-edd-category-select"), "click", e => { 73 e.preventDefault(); 74 var $element = document.querySelector("#exm-edd-category-select-categories select"); 75 76 var value = $element.options[$element.selectedIndex].value; 77 window.fetch(TMA_CONFIG.rest_url + "experience-manager/v1/category-path?taxonomy=download_category&category=" + value).then(function (response) { 78 response.json().then(data => { 79 document.getElementById("exm_edd_cat_path").innerHTML = data.path; 80 }); 81 }); 82 83 return false; 84 }); 85 }); 86 </script> 87 <?php } ?> 60 88 </div> -
experience-manager/trunk/includes/backend/segment/class.segment-editor.php
r2200549 r2215120 25 25 26 26 public function register() { 27 add_action('add_meta_boxes', [$this, 'add_meta_box']);28 27 add_action('save_post_tma_segment', [$this, 'save']); 29 28 … … 44 43 45 44 add_action('admin_notices', [$this, 'message']); 46 } 47 45 46 } 48 47 function message() { 49 48 $user_id = get_current_user_id(); … … 58 57 } 59 58 60 function isAudience() {61 $screen = get_current_screen();62 if (is_object($screen) && SegmentType::$TYPE === $screen->post_type) {63 return TRUE;64 }65 return FALSE;66 }67 68 59 function state($post) { 69 if (! $this->isAudience()) {60 if (!SegmentType::isAudienceEditor()) { 70 61 return; 71 62 } … … 90 81 function query_editor_scripts($hook_suffix) { 91 82 if (in_array($hook_suffix, array('post.php', 'post-new.php'))) { 92 if ( $this->isAudience()) {83 if (SegmentType::isAudienceEditor()) { 93 84 /* 94 85 wp_enqueue_script('experience-manager-query-editor_init', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/init.js', array(), "1.2", true); … … 117 108 118 109 public function transition_status($new_status, $old_status, $post) { 119 tma_exm_log("transition_status: " . $new_status);120 110 if ($post->post_type !== SegmentType::$TYPE) { 121 111 return; 122 112 } 113 tma_exm_log("transition_status: " . $new_status); 123 114 124 115 if ($new_status === "publish") { … … 154 145 'period' => $this->get_segment_period($post->ID) 155 146 ); 156 147 157 148 tma_exm_log("post data"); 158 149 tma_exm_log(json_encode($post_data)); … … 245 236 } 246 237 } 238 247 239 public function get_segment_period($post_id) { 248 240 $period = [ … … 255 247 $period['unit'] = get_post_meta($post_id, 'tma_segment_editor_unit', true); 256 248 } 257 249 258 250 if (array_key_exists('exm_audience_editor_tw_count', $_POST)) { 259 251 $period['count'] = intval($_POST['exm_audience_editor_tw_count']); … … 261 253 $period['count'] = intval(get_post_meta($post_id, 'tma_segment_editor_count', true)); 262 254 } 263 255 264 256 return $period; 265 257 } … … 289 281 ); 290 282 } 291 292 } 293 294 public function add_meta_box() { 295 add_meta_box( 296 'tma_segment_editor', // Unique ID 297 'Target segment editor', // Box title 298 [$this, 'html'], // Content callback, must be of type callable 299 SegmentType::$TYPE // Post type 300 ); 301 302 add_meta_box( 303 'tma_segment_editor_help', // Unique ID 304 'Segment editor help', // Box title 305 [$this, 'description'], // Content callback, must be of type callable 306 SegmentType::$TYPE // Post type 307 ); 308 add_meta_box( 309 'tma_segment_editor_categories', // Unique ID 310 'Categorie Helper', // Box title 311 [$this, 'categories'], // Content callback, must be of type callable 312 SegmentType::$TYPE // Post type 313 ); 314 add_meta_box( 315 'tma_segment_editor_timewindow', // Unique ID 316 'Time window', // Box title 317 [$this, 'time_meta_box'], // Content callback, must be of type callable 318 SegmentType::$TYPE // Post type 319 ); 320 } 321 322 public function description($post) { 323 include 'description.php'; 324 } 325 326 public function categories($post) { 327 include 'categories.php'; 328 } 329 330 function time_meta_box($post) { 331 $unit = get_post_meta($post->ID, 'tma_segment_editor_unit', true); 332 $count = get_post_meta($post->ID, 'tma_segment_editor_count', true); 333 ?> 334 <div> 335 <label for="exm_audience_editor_tw_unit">Unit</label> 336 <select name="exm_audience_editor_tw_unit" id="tma_segment_editor_tw_unit" class="postbox"> 337 <option value="YEAR" <?php selected($unit, 'YEAR'); ?> >YEAR</option> 338 <option value="MONTH" <?php selected($unit, 'MONTH'); ?> >MONTH</option> 339 <option value="WEEK" <?php selected($unit, 'WEEK'); ?> >WEEK</option> 340 <option value="DAY" <?php selected($unit, 'DAY'); ?> >DAY</option> 341 <option value="HOUR" <?php selected($unit, 'HOUR'); ?> >HOUR</option> 342 <option value="MINUTE" <?php selected($unit, 'MINUTE'); ?> >MINUTE</option> 343 </select> 344 </div> 345 <div> 346 <label for="exm_audience_editor_tw_unit">Count</label> 347 <input type="number" name="exm_audience_editor_tw_count" class="postbox" value="<?php echo $count?>" /> 348 </div> 349 <?php 350 } 351 352 public function html($post) { 353 $value = get_post_meta($post->ID, 'tma_segment_editor', true); 354 ?> 355 <textarea name="exm_audience_editor" id="exm_audience_editor" cols="50" rows="10"><?php 356 if ($value && $value !== "") { 357 echo $value; 358 } 359 ?></textarea> 360 <script type="text/javascript"> 361 CodeMirror.fromTextArea(document.getElementById("exm_audience_editor"), { 362 lineNumbers: true, 363 matchBrackets: true, 364 mode: "javascript" 365 }); 366 </script> 367 <?php 368 } 369 283 } 370 284 } -
experience-manager/trunk/includes/backend/segment/class.segment-type.php
r2096995 r2215120 57 57 */ 58 58 protected function __construct() {} 59 60 /** 61 * check if the current page is the segment editor 62 * 63 * @return boolean 64 */ 65 static function isAudienceEditor() { 66 $screen = get_current_screen(); 67 if (is_object($screen) && SegmentType::$TYPE === $screen->post_type) { 68 return TRUE; 69 } 70 return FALSE; 71 } 59 72 60 73 public function register () { … … 87 100 'public' => true, 88 101 'show_in_menu' => true, 102 'menu_icon' => plugins_url( 'experience-manager/images/audience.png' ), 89 103 'publicly_queryable' => false, 90 104 //'rewrite' => array( 'slug' => 'targetaudience' ), -
experience-manager/trunk/includes/backend/segment/description.php
r2200549 r2215120 103 103 <span>User has visited at least two products of the category T-Shirts: </span><b>rule(CATEGORY).path('/tshirts/').field('c_categories').count(2)</b> 104 104 </p> 105 105 <p> 106 <span class="headline">KEYVALUE</span> 107 <br /> 108 The KeyValue-Rule is a generic rule that is used for many purposes. 109 <br /> 110 <b>rule(KEYVALUE).name('browser.name').values(['Chrome', 'Firefox'])</b> 111 <br /> 112 "browser.name" (e.g. Chrome, Firefox, Edge, Safari) <br/> 113 "device.type" (e.g. Mobile Phone, Desktop, Tablet, Console, TV Device) <br/> 114 <span class="subheadline">Examples</span><br/> 115 <span>User uses firefox or chrome browser: </span><b>rule(KEYVALUE).name('browser.name').values(['Chrome', 'Firefox'])</b> 116 <br/> 117 <span>User uses a desktop pc: </span><b>rule(KEYVALUE).name('device.type').values(['Desktop'])</b> 118 </p> 106 119 </div> 107 120 -
experience-manager/trunk/includes/class.plugins.php
r2192435 r2215120 32 32 return in_array('woocommerce/woocommerce.php', $this->plugins); 33 33 } 34 public function easydigitaldownloads() { 35 return in_array('easy-digital-downloads/easy-digital-downloads.php', $this->plugins); 36 } 34 37 35 38 public function elementor() { -
experience-manager/trunk/includes/class.request.php
r2201127 r2215120 175 175 $rid = \TMA\ExperienceManager\TMA_COOKIE_HELPER::getInstance()->getCookie(TMA_COOKIE_HELPER::$COOKIE_REQUEST, UUID::v4(), TMA_COOKIE_HELPER::$COOKIE_REQUEST_EXPIRE); 176 176 $vid = \TMA\ExperienceManager\TMA_COOKIE_HELPER::getInstance()->getCookie(TMA_COOKIE_HELPER::$COOKIE_VISIT, UUID::v4(), TMA_COOKIE_HELPER::$COOKIE_VISIT_EXPIRE); 177 $fp = $_COOKIE['_tma_fp'];178 177 $apikey = $this->options["webtools_apikey"]; 179 178 $url = $this->options['webtools_url']; … … 187 186 // reqid=a42be86b-2930-4f72-b499-f3dcab983633&vid=8251e717-afea-43bc-b270-1033f482359f&_t=1454323264835&apikey=apikey 188 187 189 $url .= 'tracking/ image?event=' . $event;188 $url .= 'tracking/pixel?event=' . $event; 190 189 $url .= '&site=' . $siteid . '&page=' . urlencode($page); 191 $url .= "& fp=" . $fp . "&uid=" . $uid . '&reqid=' . $rid . '&vid=' . $vid;192 $url .= "&apikey=" . $apikey;190 $url .= "&uid=" . $uid . '&reqid=' . $rid . '&vid=' . $vid; 191 //$url .= "&apikey=" . $apikey; 193 192 194 193 // add the custom parameters … … 205 204 } 206 205 } 207 206 207 tma_exm_log($url); 208 208 209 $this->loadContent($url, "{}"); 209 210 } -
experience-manager/trunk/includes/frontend/class.tma_script_helper.php
r2141767 r2215120 76 76 $siteid = get_option('tma_webtools_option')['webtools_siteid']; 77 77 } 78 $cookieDomain = null;78 $cookieDomain = FALSE; 79 79 if (isset(get_option('tma_webtools_option')['webtools_cookiedomain'])) { 80 80 $cookieDomain = get_option('tma_webtools_option')['webtools_cookiedomain']; 81 82 $query = "."; 83 if (substr($cookieDomain, 0, strlen($query)) !== $query) { 81 if ($cookieDomain !== '') { 84 82 $cookieDomain = "." . $cookieDomain; 85 83 } … … 116 114 $output .= 'webtools.Tracking.init("' . $this->getWebTools_Url() . '", "' . $siteid . '", "404");'; 117 115 } 118 if ($cookieDomain !== null) {116 if ($cookieDomain !== FALSE) { 119 117 $output .= 'webtools.Tracking.setCookieDomain("' . $cookieDomain . '");'; 120 118 } … … 161 159 private function add_categories(& $meta) { 162 160 $cats = []; 161 $term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') ); 163 162 if (is_category()) { 164 163 $term_list = get_categories(); … … 167 166 $cats[] = "/" . get_term_parents_list($cat->term_id, "category", ["format" => "slug", "link" => false]); 168 167 } 169 } else if (function_exists("is_product_category") && is_product_category()) { 168 } else if (function_exists("is_product_category") && is_product_category()) { // woocommerce category 170 169 $term = get_queried_object(); 171 170 //$cats[] = $term->slug; 172 171 $cats[] = "/" . get_term_parents_list($term->term_id, "product_cat", ["format" => "slug", "link" => false]); 173 } else if (function_exists("is_product") && is_product()) { 172 } else if (function_exists("is_product") && is_product()) { // woocommerce product 174 173 $product = wc_get_product(); 175 174 $term_list = get_the_terms($product->get_id(), 'product_cat'); … … 178 177 $cats[] = "/" . get_term_parents_list($cat->term_id, "product_cat", ["format" => "slug", "link" => false]); 179 178 } 179 } else if (get_post() && get_post()->post_type === "download") { // easy digital download 180 $download = edd_get_download(get_post()->ID); 181 182 $term_list = get_the_terms($download->ID, 'download_category'); 183 foreach ($term_list as $cat) { 184 $cats[] = "/" . get_term_parents_list($cat->term_id, "download_category", ["format" => "slug", "link" => false]); 185 } 186 } else if ($term && $term->taxonomy === "download_category") { 187 $term = get_queried_object(); 188 //$cats[] = $term->slug; 189 $cats[] = "/" . get_term_parents_list($term->term_id, $term->taxonomy, ["format" => "slug", "link" => false]); 180 190 } else if (!is_404()) { 181 191 $post_categories = wp_get_post_categories(get_post()->ID, ['fields' => "ids"]); -
experience-manager/trunk/includes/modules/events/class.ecommerce_events.php
r2096995 r2215120 17 17 'name' => 'wc_tracking', 18 18 'label' => __("Track WooCommerce events?", "tma-webtools"), 19 'desc' => __("Tracked events are: order, add item to basket, remove item from basket.", "tma-webtools"), 20 'type' => 'toggle', 21 'default' => '' 22 ), 23 array( 24 'name' => 'edd_tracking', 25 'label' => __("Track EasyDigitalDownloads events?", "tma-webtools"), 19 26 'desc' => __("Tracked events are: order, add item to basket, remove item from basket.", "tma-webtools"), 20 27 'type' => 'toggle', … … 46 53 47 54 if (\TMA\ExperienceManager\Plugins::getInstance()->woocommerce()) { 48 require_once 'class.woocommerce_tracker.php'; 49 $tracker = new \TMA\ExperienceManager\WC_TRACKER(); 55 $tracker = new \TMA\ExperienceManager\Events\WC_TRACKER(); 50 56 if ($tracker->shouldInit()) { 51 57 tma_exm_log("tracking woocommerce events"); … … 55 61 } 56 62 } 63 if (\TMA\ExperienceManager\Plugins::getInstance()->easydigitaldownloads()) { 64 $edd_tracker = \TMA\ExperienceManager\Events\EDD_TRACKER::getInstance(); 65 if ($edd_tracker->shouldInit()) { 66 tma_exm_log("tracking easydigitaldownloads events"); 67 $edd_tracker->init(); 68 } else { 69 tma_exm_log("not tracking easydigitaldownloads events"); 70 } 71 } 57 72 58 73 add_filter('experience-manager/settings/fields', 'tma_webtools_modules_woocommerce_settings'); -
experience-manager/trunk/includes/modules/events/class.woocommerce_tracker.php
r2096995 r2215120 18 18 */ 19 19 20 namespace TMA\ExperienceManager ;20 namespace TMA\ExperienceManager\Events; 21 21 22 22 /** 23 23 * Tracking of WooCommerce events. 24 24 */ 25 class WC_TRACKER {25 class WC_TRACKER extends Base { 26 26 27 27 /** … … 49 49 50 50 public function woocommerce_add_to_cart($cart_item_key) { 51 51 52 $cart = WC()->cart; 52 53 $item = $cart->get_cart_item($cart_item_key); … … 61 62 $customAttributes['item_id'] = $item['product_id']; 62 63 $customAttributes['cart_items'] = $product_ids; //implode(":", $product_ids); 63 $request = new \TMA\TMA_Request(); 64 65 $request = new \TMA\ExperienceManager\TMA_Request(); 64 66 $request->track("ecommerce_cart_item_add", "#cart", $customAttributes); 65 67 } … … 81 83 $customAttributes['item_id'] = $item['product_id']; 82 84 $customAttributes['cart_items'] = $product_ids; //implode(":", $product_ids); 83 $request = new \TMA\ TMA_Request();85 $request = new \TMA\ExperienceManager\TMA_Request(); 84 86 $request->track("ecommerce_cart_item_remove", "#cart", $customAttributes); 85 87 } 86 88 87 89 public function woocommerce_order_status_changed($order_id, $status_from, $status_to) { 90 if ( $this->has_order_been_tracked_already( $order_id ) ) { 91 tma_exm_log( sprintf( 'Ignoring already tracked order %d', $order_id ) ); 92 return; 93 } 94 tma_exm_log("track woocommerce order " . $order_id); 95 88 96 $order = new \WC_Order($order_id); 89 97 $items = $order->get_items(); … … 92 100 $product_ids[] = $product['product_id']; 93 101 } 94 $request = new \TMA\ TMA_Request();102 $request = new \TMA\ExperienceManager\TMA_Request(); 95 103 $customAttributes = array(); 96 104 $customAttributes['order_id'] = $order_id; 97 105 $customAttributes['order_items'] = $product_ids; 98 $customAttributes['order_status'] = $order->get_status();99 106 $customAttributes['order_total'] = $order->get_total(); 100 107 … … 112 119 113 120 $request->track("ecommerce_order", "#order", $customAttributes); 121 $this->set_order_been_tracked( $order_id ); 114 122 } 115 123 -
experience-manager/trunk/includes/modules/messages/popup-maker/class.popup-maker.php
r2201127 r2215120 29 29 wp_enqueue_script('jquery'); 30 30 }); 31 add_filter('pum_ get_conditions', array($this, "conditions"));31 add_filter('pum_registered_conditions', array($this, "conditions")); 32 32 } 33 33 -
experience-manager/trunk/readme.txt
r2201127 r2215120 4 4 Requires at least: 4.4.1 5 5 Tested up to: 5.3 6 Stable tag: 2. 3.06 Stable tag: 2.4.0 7 7 License: GPLv2 or later 8 8 … … 63 63 64 64 == Changelog == 65 66 2.4.0 67 * Intro to the segment editor added 68 * Simple wizard to getting started with the segment editor 69 * tracking of easy digital downloads ecommerce events: add_to_cart, remove_from_cart and order 70 71 IMPORTANT: If you upgrade to version 2.4.0 you need at least Experience Platform version 3.6.0 65 72 66 73 2.3.0 -
experience-manager/trunk/tma-autoload.php
r2192435 r2215120 26 26 "TMA\ExperienceManager\Elementor_Integration" => "includes/modules/editors/elementor/class.elementor_integration.php", 27 27 "TMA\ExperienceManager\Elementor_Preview" => "includes/modules/editors/elementor/class.elementor_preview.php", 28 "TMA\ExperienceManager\ElementorPopupIntegration" => "includes/modules/messages/elementor/class.elementor-popup.php", 29 "TMA\ExperienceManager\Base" => "includes/modules/messages/elementor/class.base.php", 28 30 // Advanced Ads 29 31 "TMA\ExperienceManager\TMA_AdvancedAdsIntegration" => "includes/modules/ads/advanced/class.advanced_ads.php", … … 34 36 "TMA\ExperienceManager\Segment\SegmentType" => "includes/backend/segment/class.segment-type.php", 35 37 "TMA\ExperienceManager\Segment\SegmentEditor" => "includes/backend/segment/class.segment-editor.php", 38 "TMA\ExperienceManager\Segment\SegmentEditorHelp" => "includes/backend/segment/class.segment-editor-help.php", 39 "TMA\ExperienceManager\Segment\SegmentEditorMetaBoxes" => "includes/backend/segment/class.segment-editor-metabox.php", 36 40 // Event Tracking 37 "TMA\ExperienceManager\WC_TRACKER" => "includes/modules/events/class.woocommerce_tracker.php", 41 "TMA\ExperienceManager\Events\WC_TRACKER" => "includes/modules/events/class.woocommerce_tracker.php", 42 "TMA\ExperienceManager\Events\EDD_TRACKER" => "includes/modules/events/class.edd_tracker.php", 43 "TMA\ExperienceManager\Events\Base" => "includes/modules/events/class.ecommerce_base.php", 38 44 )); 39 45
Note: See TracChangeset
for help on using the changeset viewer.