PluginProbe
Wp Tracking Codes / 1.1.0
Wp Tracking Codes v1.1.0
trunk 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.1.0 1.1.0, 1.10.0 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3
wp-tracking-codes / trunk / wp-tracking-codes.php

wp-tracking-codes.php in Wp Tracking Codes 1.1.0, at trunk/wp-tracking-codes.php

217 lines 8.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: Wp Tracking Codes
4 Plugin URI: https://br.wordpress.org/plugins/wp-tracking-codes/
5 Description: Centralize os códigos de acompanhamento em apenas um lugar. Suporte: Google Analytics, Google Adwords Remarketing, Facebook Pixel Code
6 Version: 1.1.0
7 Author: Heitor Pedroso
8 Author URI: https://github.com/heitorspedroso
9 License: GPL2
10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 Domain Path: /languages
12 Text Domain: wp-tracking-codes
13 */
14 if(!defined('ABSPATH')){
15 exit;
16 }
17
18 if(!class_exists('Wp_Tracking_Codes')):
19 class Wp_Tracking_Codes {
20 /**
21 * Plugin version.
22 *
23 * @var string
24 */
25 const VERSION = '1.1.0';
26 /**
27 * Instance of this class.
28 *
29 * @var object
30 */
31 protected static $instance = null;
32 /**
33 * Initialize the plugin public actions.
34 */
35 private function __construct() {
36 // Load the instalation hook
37 register_activation_hook( __FILE__, 'wp_tracking_codes_install' );
38 // Load plugin text domain.
39 add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
40 //Load includes
41 $this->includes();
42 //Load Tracking Analytics
43 add_action( 'wp_head', array( $this, 'hook_analytics' ) );
44 //Load Tracking Analytics Remarketing
45 add_action( 'wp_footer', array( $this, 'hook_analytics_remarketing' ) );
46 //Load Tracking Facebook ID
47 add_action( 'wp_head', array( $this, 'hook_facebook_pixel_code' ) );
48 //Load Tracking Google Tag Manager in Head and after Body
49 add_action('wp_head', array($this, 'hook_google_tag_manager_head'));
50 add_filter('template_include', array( $this, 'custom_include' ),0 );
51 add_filter('shutdown', array( $this, 'hook_google_tag_manager_body' ),0);
52 }
53 /**
54 * Return an instance of this class.
55 *
56 * @return object A single instance of this class.
57 */
58 public static function get_instance() {
59 // If the single instance hasn't been set, set it now.
60 if ( null == self::$instance ) {
61 self::$instance = new self;
62 }
63
64 return self::$instance;
65 }
66
67 /**
68 * Get templates path.
69 *
70 * @return string
71 */
72 public static function get_templates_path() {
73 return plugin_dir_path( __FILE__ ) . 'templates/';
74 }
75
76 /**
77 * Load the plugin text domain for translation.
78 */
79 public function load_plugin_textdomain() {
80 load_plugin_textdomain( 'wp-tracking-codes', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
81 }
82
83 /**
84 * Instalation Plugin
85 */
86 public function wp_tracking_codes_install() {
87 // Trigger our function that registers the custom post type
88 pluginprefix_setup_post_types();
89 // Clear the permalinks after the post type has been registered
90 flush_rewrite_rules();
91 }
92 /**
93 * Includes
94 */
95 private function includes() {
96 include_once 'includes/class-register-codes.php';
97 }
98 /**
99 * Debug
100 */
101 public function log_me($message) {
102 if (WP_DEBUG === true) {
103 if (is_array($message) || is_object($message)) {
104 error_log(print_r($message, true));
105 } else {
106 error_log($message);
107 }
108 }
109 }
110 public function hook_analytics(){
111 $this->options = get_option( 'tracking_option' );
112 if( empty( $this->options['tracking_option']['analytics'] ) && !empty( $this->options['analytics'] ) )
113 if($analytics = $this->options['analytics']):
114 echo "
115 <!-- Google Analytics Tag -->
116 <script>
117 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
118 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
119 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
120 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
121
122 ga('create', '$analytics', 'auto');
123 ga('send', 'pageview');
124
125 </script>
126 <!-- Google Analytics Tag -->
127 ";
128 endif;
129 }
130 public function hook_analytics_remarketing(){
131 $this->options = get_option( 'tracking_option' );
132 if( empty( $this->options['tracking_option']['analytics_remarketing'] ) && !empty( $this->options['analytics_remarketing'] ) )
133 if($analytics_remarketing = $this->options['analytics_remarketing']):
134 echo '
135 <!-- Google Remarketing Tag -->
136 <script type="text/javascript">
137 /* <![CDATA[ */
138 var google_conversion_id = '.$analytics_remarketing.';
139 var google_custom_params = window.google_tag_params;
140 var google_remarketing_only = true;
141 /* ]]> */
142 </script>
143 <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
144 <noscript>
145 <div style="display:inline;">
146 <img height="1" width="1" style="border-style:none;" alt=""
147 src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/'.$analytics_remarketing.'/?value=0&amp;guid=ON&amp;script=0"/>
148 </div>
149 </noscript>
150 <!-- Google Remarketing Tag -->
151 ';
152 endif;
153 }
154 public function hook_facebook_pixel_code(){
155 $this->options = get_option( 'tracking_option' );
156 if( empty( $this->options['tracking_option']['facebook_pixel_code'] ) && !empty( $this->options['facebook_pixel_code'] ) )
157 if($facebook_pixel_code = $this->options['facebook_pixel_code']):
158 echo "
159 <!-- Facebook Pixel Code -->
160 <script>
161 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
162 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
163 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
164 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
165 document,'script','https://connect.facebook.net/en_US/fbevents.js');
166
167 fbq('init', '$facebook_pixel_code');
168 fbq('track', 'PageView');</script>
169 <noscript><img height='1' width='1' style='display:none'
170 src='https://www.facebook.com/tr?id=1556124141356092&ev=PageView&noscript=1'
171 /></noscript>
172 <!-- End Facebook Pixel Code -->
173 ";
174 endif;
175 }
176
177 public function custom_include($template) {
178 ob_start();
179 return $template;
180 }
181
182 public function hook_google_tag_manager_head(){
183 $this->options = get_option('tracking_option');
184 if (empty($this->options['tracking_option']['google_tag_manager']) && !empty($this->options['google_tag_manager']))
185 if ($google_tag_manager = $this->options['google_tag_manager']) :
186 echo "
187 <!-- Google Tag Manager -->
188 <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
189 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
190 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
191 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
192 })(window,document,'script','dataLayer','$google_tag_manager');</script>
193 <!-- End Google Tag Manager -->
194 ";
195 endif;
196 }
197
198 public function hook_google_tag_manager_body($classes){
199 $this->options = get_option( 'tracking_option' );
200 if( empty( $this->options['tracking_option']['google_tag_manager'] ) && !empty( $this->options['google_tag_manager'] ) )
201 if($google_tag_manager = $this->options['google_tag_manager']):
202 $content = ob_get_clean();
203 $code_tag = "
204 <!-- Google Tag Manager (noscript) -->
205 <noscript><iframe src='https://www.googletagmanager.com/ns.html?id=$google_tag_manager'
206 height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript>
207 <!-- End Google Tag Manager (noscript) -->
208 ";
209 $content = preg_replace('#<body([^>]*)>#i',"<body$1>{$code_tag}",$content);
210 echo $content;
211 endif;
212 }
213 }
214 add_action( 'plugins_loaded', array( 'Wp_Tracking_Codes', 'get_instance' ) );
215 endif;
216 //register_deactivation_hook ( __FILE__ , 'pluginprefix_function_to_run' );
217