$SDIDTM_options[SDIDTM_OPTION_DISABLE_ADMIN], 'editor' => $SDIDTM_options[SDIDTM_OPTION_DISABLE_EDITOR], 'author' => $SDIDTM_options[SDIDTM_OPTION_DISABLE_AUTHOR], 'contributor' => $SDIDTM_options[SDIDTM_OPTION_DISABLE_CONTRIBUTOR], 'subscriber' => $SDIDTM_options[SDIDTM_OPTION_DISABLE_SUBSCRIBER], 'guest' => $SDIDTM_options[SDIDTM_OPTION_DISABLE_GUEST] ); $perms = array(); foreach($opts as $opt=>$val){ if($val === 1 || $val == '1' || $val === true){ if(in_array($opt, $current_user->roles)){ $disable = true; } } } if($disable){ // notify the logged in user in the admin bar that DTM is disabled if($wp_admin_bar){ $wp_admin_bar->add_menu( array( 'id'=>'adobe-dtm', 'title'=>'Adobe DTM Disabled' ) ); } } // disable for guests if(!$disable && $opts['guest'] && count($current_user->roles) == 0){ $disable = true; } return $disable; } function SDI_dtm_exists(){ global $SDIDTM_options; if($SDIDTM_options[SDIDTM_OPTION_DTM_EXISTS]){ return true; } else { return false; } } function SDIDTM_get_name($name){ global $SDIDTM_defaultoptions, $SDIDTM_options; $value = $SDIDTM_options[$name]; if(!$value || $value == ''){ $value = $SDIDTM_defaultoptions[$name]; } return $value; } if (!function_exists("getallheaders")) { function getallheaders() { $headers = ""; foreach ($_SERVER as $name => $value) { if (substr($name, 0, 5) == "HTTP_") { $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))) ] = $value; } } return $headers; } } function SDIDTM_add_basic_datalayer_data($dataLayer) { global $current_user, $wp_query, $SDIDTM_options; if(SDIDTM_disable()){ return array(); } $date = array(); if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_LOGGEDIN]) { if (is_user_logged_in()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_LOGGEDIN)] = "logged-in"; } else { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_LOGGEDIN)] = "logged-out"; } } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_USERROLE]) { get_currentuserinfo(); $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_USERROLE)] = ($current_user->roles[0] == NULL ? "visitor-logged-out" : $current_user->roles[0]); } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTTITLE]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTTITLE)] = strip_tags(wp_title("|", false, "right")); } if (is_singular()) { if(get_the_ID() && $SDIDTM_options[SDIDTM_OPTION_INCLUDE_PAGEID]){ $dataLayer[$SDIDTM_options[SDIDTM_OPTION_NAME_PAGEID]] = get_the_ID(); } if($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTCUSTOM]){ $meta = get_post_custom(); $newmeta = array(); foreach($meta as $mn=>$mv){ if(strpos($mn, "_edit_")===false){ $newmeta[$mn] = $mv; } } $dataLayer[$SDIDTM_options[SDIDTM_OPTION_NAME_POSTCUSTOM]] = $newmeta; } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTTYPE]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTTYPE)] = get_post_type(); $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "single-" . get_post_type(); } if($SDIDTM_options[SDIDTM_OPTION_INCLUDE_COMMENTS]){ if(comments_open()){ $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_COMMENTS)] = get_comments_number(); } } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_CATEGORIES]) { $_post_cats = get_the_category(); if ($_post_cats) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_CATEGORIES)] = array(); foreach ($_post_cats as $_one_cat) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_CATEGORIES)][] = $_one_cat->slug; } } } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_TAGS]) { $_post_tags = get_the_tags(); if ($_post_tags) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_TAGS)] = array(); foreach ($_post_tags as $tag) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_TAGS)][] = $tag->slug; } } } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_AUTHOR]) { $postuser = get_userdata($GLOBALS["post"]->post_author); if (false !== $postuser) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_AUTHOR)] = $postuser->display_name; } } $date["date"] = get_the_date(); $date["year"] = get_the_date("Y"); $date["month"] = get_the_date("m"); $date["day"] = get_the_date("d"); } if (is_archive() || is_post_type_archive()) { if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTTYPE]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTTYPE)] = get_post_type(); if (is_category()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "category-" . get_post_type(); } else if (is_tag()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "tag-" . get_post_type(); } else if (is_tax()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "tax-" . get_post_type(); } else if (is_author()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "author-" . get_post_type(); } else if (is_year()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "year-" . get_post_type(); $date["year"] = get_the_date("Y"); } else if (is_month()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "month-" . get_post_type(); $date["year"] = get_the_date("Y"); $date["month"] = get_the_date("m"); } else if (is_day()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "day-" . get_post_type(); $date["date"] = get_the_date(); $date["year"] = get_the_date("Y"); $date["month"] = get_the_date("m"); $date["day"] = get_the_date("d"); } else if (is_time()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "time-" . get_post_type(); } else if (is_date()) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTSUBTYPE)] = "date-" . get_post_type(); $date["date"] = get_the_date(); $date["year"] = get_the_date("Y"); $date["month"] = get_the_date("m"); $date["day"] = get_the_date("d"); } } if ((is_tax() || is_category()) && $SDIDTM_options[SDIDTM_OPTION_INCLUDE_CATEGORIES]) { $_post_cats = get_the_category(); $dataLayer[$SDIDTM_options[SDIDTM_OPTION_NAME_CATEGORIES]] = array(); foreach ($_post_cats as $_one_cat) { $dataLayer[$SDIDTM_options[SDIDTM_OPTION_NAME_CATEGORIES]][] = $_one_cat->slug; } } if (($SDIDTM_options[SDIDTM_OPTION_INCLUDE_AUTHOR]) && (is_author())) { $dataLayer["author"] = get_the_author(); } } if (is_search()) { if($SDIDTM_options[SDIDTM_OPTION_INCLUDE_SEARCHTERM]){ $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_SEARCHTERM)] = get_search_query(); } if($SDIDTM_options[SDIDTM_OPTION_INCLUDE_SEARCHORIGIN]){ $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_SEARCHORIGIN)] = $_SERVER["HTTP_REFERER"]; } if($SDIDTM_options[SDIDTM_OPTION_INCLUDE_SEARCHRESULTS]){ $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_SEARCHRESULTS)] = $wp_query->post_count; } } if (is_front_page() && $SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTTYPE]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTTYPE)] = "homepage"; } if (!is_front_page() && is_home() && $SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTTYPE]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTTYPE)] = "blog-home"; } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTCOUNT]) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTCOUNT)] = (int)$wp_query->post_count; // $dataLayer["postCountTotal"] = (int)$wp_query->found_posts; } if ($SDIDTM_options[SDIDTM_OPTION_INCLUDE_POSTDATE] && count($date)>0) { $dataLayer[SDIDTM_get_name(SDIDTM_OPTION_NAME_POSTDATE)] = $date; } return $dataLayer; } function SDIDTM_wp_header() { global $SDIDTM_datalayer_name, $SDIDTM_options; $SDIDTM_datalayer_data = array(); $SDIDTM_datalayer_data = (array)apply_filters(SDIDTM_WPFILTER_COMPILE_DATALAYER, $SDIDTM_datalayer_data); $_dtm_header_content = ''; if ($SDIDTM_options[SDIDTM_OPTION_DTM_CODE] != "" && !SDIDTM_disable()) { $_dtm_header_content.= ' '; if(!SDI_dtm_exists()){ $_dtm_header_content.= ' '; } } echo $_dtm_header_content; } function SDIDTM_wp_footer() { global $SDIDTM_options, $SDIDTM_datalayer_name, $SDIDTM; $_dtm_tag = ''; if ($SDIDTM_options[SDIDTM_OPTION_DTM_CODE] != "" && !SDIDTM_disable() && !SDI_dtm_exists()) { $_dtm_tag.= ''; } echo $_dtm_tag; } add_action("wp_head", "SDIDTM_wp_header", 1); add_action("wp_footer", "SDIDTM_wp_footer", 100000); add_filter(SDIDTM_WPFILTER_COMPILE_DATALAYER, "SDIDTM_add_basic_datalayer_data");