PluginProbe
Analytify – Google Analytics Dashboard For WordPress (GA4 analytics tracking) / trunk
Analytify – Google Analytics Dashboard For WordPress (GA4 analytics tracking) vtrunk
9.1.2 9.1.1 9.1.0 9.0.2 9.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.1.0 1.1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 All 153 releases
wp-analytify / inc / analytify-constants.php

analytify-constants.php in Analytify – Google Analytics Dashboard For WordPress (GA4 analytics tracking) trunk, at inc/analytify-constants.php

268 lines 9.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Analytify Constants File
4 *
5 * This file contains all constants used throughout the Analytify plugin.
6 * Centralizing constants here makes them easier to manage and update.
7 *
8 * @package WP_Analytify
9 * @since 8.0.0
10 * @version 9.1.2
11 */
12
13 // Exit if accessed directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 // ============================================================================.
19 // PLUGIN VERSION & IDENTIFICATION.
20 // ============================================================================.
21
22 if ( ! defined( 'ANALYTIFY_VERSION' ) ) {
23 define( 'ANALYTIFY_VERSION', '9.1.2' );
24 }
25
26 if ( ! defined( 'WP_ANALYTIFY_PLUGIN_VERSION' ) ) {
27 define( 'WP_ANALYTIFY_PLUGIN_VERSION', '9.1.2' );
28 }
29
30 if ( ! function_exists( 'analytify_get_asset_suffix' ) ) {
31 /**
32 * Filename suffix for choosing minified vs unminified assets.
33 *
34 * @since 9.1.2
35 * @return string '' when SCRIPT_DEBUG is on, '.min' otherwise.
36 */
37 function analytify_get_asset_suffix() {
38 return ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
39 }
40 }
41
42 if ( ! defined( 'WP_ANALYTIFY_ID' ) ) {
43 define( 'WP_ANALYTIFY_ID', 'wp-analytify-options' );
44 }
45
46 if ( ! defined( 'ANALYTIFY_NICK' ) ) {
47 define( 'ANALYTIFY_NICK', 'Analytify' );
48 }
49
50 if ( ! defined( 'ANALYTIFY_PRODUCT_NAME' ) ) {
51 define( 'ANALYTIFY_PRODUCT_NAME', 'Analytify WordPress Plugin' );
52 }
53
54 if ( ! defined( 'WP_ANALYTIFY_USER_META_PREFIX' ) ) {
55 define( 'WP_ANALYTIFY_USER_META_PREFIX', 'wp_analytify_' );
56 }
57 // Nested key under wp-analytify-authentication for OAuth “connected as” email display.
58 // Both use defined() guards so site-specific or drop-in code may predefine without PHP notices.
59 if ( ! defined( 'ANALYTIFY_AUTHENTICATION_OPTION_NAME' ) ) {
60 define( 'ANALYTIFY_AUTHENTICATION_OPTION_NAME', 'wp-analytify-authentication' );
61 }
62 if ( ! defined( 'ANALYTIFY_GOOGLE_OAUTH_EMAIL_KEY' ) ) {
63 define( 'ANALYTIFY_GOOGLE_OAUTH_EMAIL_KEY', 'google_oauth_connected_email' );
64 }
65
66 // ============================================================================.
67 // FILE SYSTEM PATHS & URLs.
68 // ============================================================================.
69
70 if ( ! defined( 'WP_ANALYTIFY_PLUGIN_DIR' ) ) {
71 define( 'WP_ANALYTIFY_PLUGIN_DIR', dirname( __DIR__ ) );
72 }
73
74 if ( ! defined( 'ANALYTIFY_PLUGIN_URL' ) ) {
75 define( 'ANALYTIFY_PLUGIN_URL', plugin_dir_url( dirname( __DIR__ ) . '/wp-analytify.php' ) );
76 }
77
78 if ( ! defined( 'WP_ANALYTIFY_ROOT_PATH' ) ) {
79 define( 'WP_ANALYTIFY_ROOT_PATH', WP_ANALYTIFY_PLUGIN_DIR );
80 }
81
82 if ( ! defined( 'WP_ANALYTIFY_LIB_PATH' ) ) {
83 define( 'WP_ANALYTIFY_LIB_PATH', WP_ANALYTIFY_PLUGIN_DIR . '/lib/' );
84 }
85
86 if ( ! defined( 'WP_ANALYTIFY_LOCAL_DIR' ) ) {
87 define( 'WP_ANALYTIFY_LOCAL_DIR', WP_CONTENT_DIR . apply_filters( 'analytify_dir_to_host_analytics', '/uploads/analytify/' ) );
88 }
89
90 if ( ! defined( 'WP_PLUGIN_DIR' ) ) {
91 define( 'WP_PLUGIN_DIR', dirname( __DIR__ ) );
92 }
93
94 // ============================================================================.
95 // EXTERNAL SERVICE URLs.
96 // ============================================================================.
97
98 if ( ! defined( 'ANALYTIFY_GOOGLE_SEARCH_CONSOLE_API_URL' ) ) {
99 define( 'ANALYTIFY_GOOGLE_SEARCH_CONSOLE_API_URL', 'https://www.googleapis.com/webmasters/v3/sites/' );
100 }
101
102 // ============================================================================.
103 // GOOGLE OAUTH CREDENTIALS & ENDPOINTS.
104 // ============================================================================.
105
106 // Free version OAuth credentials.
107 if ( get_option( 'wpa_current_version' ) ) { // Pro Keys.
108 define( 'WP_ANALYTIFY_CLIENTID', '707435375568-9lria1uirhitcit2bhfg0rgbi19smjhg.apps.googleusercontent.com' );
109 define( 'WP_ANALYTIFY_CLIENTSECRET', 'b9C77PiPSEvrJvCu_a3dzXoJ' );
110 } else { // Free Keys.
111 define( 'WP_ANALYTIFY_CLIENTID', '958799092305-7p6jlsnmv1dn44a03ma00kmdrau2i31q.apps.googleusercontent.com' );
112 define( 'WP_ANALYTIFY_CLIENTSECRET', 'Mzs1ODgJTpjk8mzQ3mbrypD3' );
113 }
114
115 // OAuth endpoints.
116 if ( ! defined( 'WP_ANALYTIFY_AUTH_URL' ) ) {
117 define( 'WP_ANALYTIFY_AUTH_URL', 'https://accounts.google.com/o/oauth2/v2/auth?' );
118 }
119
120 if ( ! defined( 'WP_ANALYTIFY_REDIRECT' ) ) {
121 define( 'WP_ANALYTIFY_REDIRECT', 'https://analytify.io/api/' );
122 }
123
124 if ( ! defined( 'WP_ANALYTIFY_TOKEN_URL' ) ) {
125 define( 'WP_ANALYTIFY_TOKEN_URL', 'https://oauth2.googleapis.com/token' );
126 }
127 // ============================================================================.
128 // GOOGLE API SCOPES & PERMISSIONS.
129 // ============================================================================.
130
131 // Basic read & write + identity (id_token + userinfo.email for “connected as …” in settings).
132 if ( ! defined( 'WP_ANALYTIFY_SCOPE' ) ) {
133 define(
134 'WP_ANALYTIFY_SCOPE',
135 'https://www.googleapis.com/auth/analytics.readonly https://www.googleapis.com/auth/analytics.edit '
136 . 'openid email https://www.googleapis.com/auth/userinfo.email'
137 );
138 }
139
140 // Full read & write and extra permissions.
141 if ( ! defined( 'WP_ANALYTIFY_SCOPE_FULL' ) ) {
142 define(
143 'WP_ANALYTIFY_SCOPE_FULL',
144 'https://www.googleapis.com/auth/analytics.readonly https://www.googleapis.com/auth/analytics '
145 . 'https://www.googleapis.com/auth/analytics.edit https://www.googleapis.com/auth/webmasters '
146 . 'openid email https://www.googleapis.com/auth/userinfo.email'
147 );
148 }
149
150 // ============================================================================.
151 // GOOGLE API ENDPOINTS & KEYS.
152 // ============================================================================.
153
154 if ( ! defined( 'ANALYTIFY_DEV_KEY' ) ) {
155 define( 'ANALYTIFY_DEV_KEY', 'AIzaSyDXjBezSlaVMPk8OEi8Vw5aFvteouXHZpI' );
156 }
157
158 if ( ! defined( 'WP_ANALYTIFY_GA_ADMIN_API_BASE' ) ) {
159 define( 'WP_ANALYTIFY_GA_ADMIN_API_BASE', 'https://analyticsadmin.googleapis.com/v1alpha' );
160 }
161
162 // v1beta base used for acknowledgeUserDataCollection (required before creating MP secrets).
163 if ( ! defined( 'WP_ANALYTIFY_GA_ADMIN_API_BASE_V1BETA' ) ) {
164 define( 'WP_ANALYTIFY_GA_ADMIN_API_BASE_V1BETA', 'https://analyticsadmin.googleapis.com/v1beta' );
165 }
166
167 // ============================================================================.
168 // EXTERNAL SERVICES & STORE.
169 // ============================================================================.
170
171 if ( ! defined( 'ANALYTIFY_STORE_URL' ) ) {
172 define( 'ANALYTIFY_STORE_URL', 'https://analytify.io' );
173 }
174
175 // ============================================================================.
176 // LOGGING & DEBUGGING.
177 // ============================================================================.
178
179 // Note: WP_ANALYTIFY_LOG_DIR is defined dynamically in the main class.
180 // based on WordPress upload directory, but we can provide a default here.
181 if ( ! defined( 'WP_ANALYTIFY_LOG_DIR' ) ) {
182 $upload_dir = wp_upload_dir();
183 define( 'WP_ANALYTIFY_LOG_DIR', $upload_dir['basedir'] . '/analytify-logs/' );
184 }
185
186 // ============================================================================.
187 // TRACKING & ANALYTICS.
188 // ============================================================================.
189
190 // Note: WP_ANALYTIFY_TRACKING_MODE is defined dynamically in authentication trait.
191 // based on plugin settings.
192
193 // ============================================================================.
194 // PRO VERSION CONSTANTS (if available).
195 // ============================================================================.
196
197 if ( ! defined( 'WP_ANALYTIFY_PRO_ID' ) ) {
198 define( 'WP_ANALYTIFY_PRO_ID', 10 );
199 }
200
201 // ============================================================================.
202 // DASHBOARD WIDGET CONSTANTS.
203 // ============================================================================.
204
205 if ( ! defined( 'WP_ANALYTIFY_DASHBOARD_VERSION' ) ) {
206 define( 'WP_ANALYTIFY_DASHBOARD_VERSION', '7.0.0' );
207 }
208
209 if ( ! defined( 'WP_ANALYTIFY_DASHBOARD_ROOT_PATH' ) ) {
210 define( 'WP_ANALYTIFY_DASHBOARD_ROOT_PATH', dirname( __DIR__ ) );
211 }
212
213 if ( ! defined( 'WP_ANALYTIFY_WIDGET_PATH' ) ) {
214 define( 'WP_ANALYTIFY_WIDGET_PATH', plugin_dir_url( dirname( __DIR__ ) . '/wp-analytify.php' ) );
215 }
216
217 // ============================================================================.
218 // FORMS ADDON CONSTANTS.
219 // ============================================================================.
220
221 if ( ! defined( 'WP_ANALYTIFY_FORMS_VERSION' ) ) {
222 define( 'WP_ANALYTIFY_FORMS_VERSION', '5.0.0' );
223 }
224
225 if ( ! defined( 'WP_ANALYTIFY_FORMS_ADDON_CUSTOM_FORM_CLASS' ) ) {
226 define( 'WP_ANALYTIFY_FORMS_ADDON_CUSTOM_FORM_CLASS', 'analytify_form_custom' );
227 }
228
229 // ============================================================================.
230 // UTILITY FUNCTIONS.
231 // ============================================================================.
232
233 /**
234 * Get the appropriate client ID based on whether Pro is active
235 *
236 * @return string The appropriate client ID
237 */
238 function analytify_get_client_id() {
239 if ( get_option( 'wpa_current_version' ) ) {
240 return WP_ANALYTIFY_PRO_CLIENTID;
241 }
242 return WP_ANALYTIFY_CLIENTID;
243 }
244
245 /**
246 * Get the appropriate client secret based on whether Pro is active
247 *
248 * @return string The appropriate client secret
249 */
250 function analytify_get_client_secret() {
251 if ( get_option( 'wpa_current_version' ) ) {
252 return WP_ANALYTIFY_PRO_CLIENTSECRET;
253 }
254 return WP_ANALYTIFY_CLIENTSECRET;
255 }
256
257 /**
258 * Get the appropriate scope based on whether Pro is active
259 *
260 * @return string The appropriate scope
261 */
262 function analytify_get_scope() {
263 if ( class_exists( 'WP_Analytify_Pro' ) ) {
264 return WP_ANALYTIFY_SCOPE_FULL;
265 }
266 return WP_ANALYTIFY_SCOPE;
267 }
268