PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 260917
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v260917
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / src / includes / classes / tracking-codes.inc.php

tracking-codes.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 260917, at src/includes/classes/tracking-codes.inc.php

221 lines 9.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // @codingStandardsIgnoreFile
3 /**
4 * Tracking Codes.
5 *
6 * Copyright: © 2009-2011
7 * {@link http://websharks-inc.com/ WebSharks, Inc.}
8 * (coded in the USA)
9 *
10 * Released under the terms of the GNU General Public License.
11 * You should have received a copy of the GNU General Public License,
12 * along with this software. In the main directory, see: /licensing/
13 * If not, see: {@link http://www.gnu.org/licenses/}.
14 *
15 * @package s2Member\Tracking
16 * @since 3.5
17 */
18 if(!defined('WPINC')) // MUST have WordPress.
19 exit("Do not access this file directly.");
20
21 if(!class_exists("c_ws_plugin__s2member_tracking_codes"))
22 {
23 /**
24 * Tracking Codes.
25 *
26 * @package s2Member\Tracking
27 * @since 3.5
28 */
29 class c_ws_plugin__s2member_tracking_codes
30 {
31 /**
32 * Displays Signup Tracking Codes.
33 *
34 * These are stored inside s2Member's Transient Queue by the IPN processor.
35 *
36 * Tracking Codes are only displayed/processed one time.
37 * s2Member will display Tracking Codes in (1) of these 4 locations:
38 *
39 * o On the Return URL / Thank-You Page, after returning from your Payment Gateway.
40 * o Otherwise, on the Registration Form, after returning from your Payment Gateway.
41 * o Otherwise, if possible, on the Login Form *(in the footer)* after Registration is completed.
42 * o Otherwise, in the footer of your WordPress theme, as soon as possible; or after the Customer's very first login.
43 *
44 * @package s2Member\Tracking
45 * @since 3.5
46 *
47 * @attaches-to ``add_action("login_footer");``
48 * @attaches-to ``add_action("wp_footer");``
49 * @also-called-by {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
50 */
51 public static function display_signup_tracking_codes()
52 {
53 do_action("ws_plugin__s2member_before_display_signup_tracking_codes", get_defined_vars());
54
55 if((!empty($_COOKIE["s2member_tracking"]) && ($subscr_or_txn_id = c_ws_plugin__s2member_utils_encryption::decrypt($_COOKIE["s2member_tracking"]))) || (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok()) && extract($reg_cookies) && ($subscr_or_txn_id = $subscr_id)))
56 {
57 if(($code = get_transient($transient = "s2m_".md5("s2member_transient_signup_tracking_codes_".$subscr_or_txn_id))))
58 {
59 delete_transient($transient); // Only display this ONE time. Delete transient immediately.
60
61 echo '<img src="'.esc_attr(home_url("/?s2member_delete_tracking_cookie=1")).'" alt="." style="width:1px; height:1px; border:0;" />'."\n";
62
63 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
64 do_action("ws_plugin__s2member_during_display_signup_tracking_codes", get_defined_vars());
65 unset($__refs, $__v);
66
67 $code = (string)apply_filters("ws_plugin__s2member_signup_tracking_codes", $code, get_defined_vars());
68 echo do_shortcode($code)."\n";
69 }
70 }
71 do_action("ws_plugin__s2member_after_display_signup_tracking_codes", get_defined_vars());
72 }
73
74 /**
75 * Displays Modification Tracking Codes.
76 *
77 * These are stored inside s2Member's Transient Queue by the IPN processor.
78 *
79 * Tracking Codes are only displayed/processed one time.
80 * s2Member will display Tracking Codes in (1) of these 3 locations:
81 *
82 * o On the Return URL / Thank-You Page, after returning from your Payment Gateway.
83 * o Otherwise, if possible, on the Login Form *(in the footer)* after returning from your Payment Gateway.
84 * o Otherwise, in the footer of your WordPress theme, as soon as possible; or after the Customer's next login.
85 *
86 * @package s2Member\Tracking
87 * @since 110815
88 *
89 * @attaches-to ``add_action("login_footer");``
90 * @attaches-to ``add_action("wp_footer");``
91 * @also-called-by {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
92 */
93 public static function display_modification_tracking_codes()
94 {
95 do_action("ws_plugin__s2member_before_display_modification_tracking_codes", get_defined_vars());
96
97 if((!empty($_COOKIE["s2member_tracking"]) && ($subscr_or_txn_id = c_ws_plugin__s2member_utils_encryption::decrypt($_COOKIE["s2member_tracking"]))) || (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok()) && extract($reg_cookies) && ($subscr_or_txn_id = $subscr_id)))
98 {
99 if(($code = get_transient($transient = "s2m_".md5("s2member_transient_modification_tracking_codes_".$subscr_or_txn_id))))
100 {
101 delete_transient($transient); // Only display this ONE time. Delete transient immediately.
102
103 echo '<img src="'.esc_attr(home_url("/?s2member_delete_tracking_cookie=1")).'" alt="." style="width:1px; height:1px; border:0;" />'."\n";
104
105 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
106 do_action("ws_plugin__s2member_during_display_modification_tracking_codes", get_defined_vars());
107 unset($__refs, $__v);
108
109 $code = (string)apply_filters("ws_plugin__s2member_modification_tracking_codes", $code, get_defined_vars());
110 echo do_shortcode($code)."\n";
111 }
112 }
113 do_action("ws_plugin__s2member_after_display_modification_tracking_codes", get_defined_vars());
114 }
115
116 /**
117 * Displays Capability Tracking Codes.
118 *
119 * These are stored inside s2Member's Transient Queue by the IPN processor.
120 *
121 * Tracking Codes are only displayed/processed one time.
122 * s2Member will display Tracking Codes in (1) of these 3 locations:
123 *
124 * o On the Return URL / Thank-You Page, after returning from your Payment Gateway.
125 * o Otherwise, if possible, on the Login Form *(in the footer)* after returning from your Payment Gateway.
126 * o Otherwise, in the footer of your WordPress theme, as soon as possible; or after the Customer's next login.
127 *
128 * @package s2Member\Tracking
129 * @since 110815
130 *
131 * @attaches-to ``add_action("login_footer");``
132 * @attaches-to ``add_action("wp_footer");``
133 * @also-called-by {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
134 */
135 public static function display_ccap_tracking_codes()
136 {
137 do_action("ws_plugin__s2member_before_display_ccap_tracking_codes", get_defined_vars());
138
139 if((!empty($_COOKIE["s2member_tracking"]) && ($subscr_or_txn_id = c_ws_plugin__s2member_utils_encryption::decrypt($_COOKIE["s2member_tracking"]))) || (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok()) && extract($reg_cookies) && ($subscr_or_txn_id = $subscr_id)))
140 {
141 if(($code = get_transient($transient = "s2m_".md5("s2member_transient_ccap_tracking_codes_".$subscr_or_txn_id))))
142 {
143 delete_transient($transient); // Only display this ONE time. Delete transient immediately.
144
145 echo '<img src="'.esc_attr(home_url("/?s2member_delete_tracking_cookie=1")).'" alt="." style="width:1px; height:1px; border:0;" />'."\n";
146
147 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
148 do_action("ws_plugin__s2member_during_display_ccap_tracking_codes", get_defined_vars());
149 unset($__refs, $__v);
150
151 $code = (string)apply_filters("ws_plugin__s2member_ccap_tracking_codes", $code, get_defined_vars());
152 echo do_shortcode($code)."\n";
153 }
154 }
155 do_action("ws_plugin__s2member_after_display_ccap_tracking_codes", get_defined_vars());
156 }
157
158 /**
159 * Displays Specific Post/Page Tracking Codes.
160 *
161 * These are stored inside s2Member's Transient Queue, by BOTH the IPN & Return-Data processors.
162 *
163 * Specific Post/Page Tracking Codes are only displayed/processed one time.
164 * s2Member will display Tracking Codes in the footer of your theme.
165 *
166 * @package s2Member\Tracking
167 * @since 3.5
168 *
169 * @attaches-to ``add_action("login_footer");``
170 * @attaches-to ``add_action("wp_footer");``
171 * @also-called-by {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
172 *
173 * @return null After displaying possible Tracking Code(s).
174 */
175 public static function display_sp_tracking_codes()
176 {
177 do_action("ws_plugin__s2member_before_display_sp_tracking_codes", get_defined_vars());
178
179 if(!empty($_COOKIE["s2member_sp_tracking"]) && ($txn_id = c_ws_plugin__s2member_utils_encryption::decrypt($_COOKIE["s2member_sp_tracking"])))
180 {
181 if(($code = get_transient($transient = "s2m_".md5("s2member_transient_sp_tracking_codes_".$txn_id))))
182 {
183 delete_transient($transient); // Only display this ONE time. Delete transient immediately.
184
185 echo '<img src="'.esc_attr(home_url("/?s2member_delete_sp_tracking_cookie=1")).'" alt="." style="width:1px; height:1px; border:0;" />'."\n";
186
187 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
188 do_action("ws_plugin__s2member_during_display_sp_tracking_codes", get_defined_vars());
189 unset($__refs, $__v);
190
191 $code = (string)apply_filters("ws_plugin__s2member_sp_tracking_codes", $code, get_defined_vars());
192 echo $code."\n";
193 }
194 }
195 do_action("ws_plugin__s2member_after_display_sp_tracking_codes", get_defined_vars());
196 }
197
198 /**
199 * Generates/returns all Tracking Codes integrated with s2Member.
200 *
201 * This method may be used in areas where s2Member needs to build tracking codes in a more dynamic way.
202 *
203 * @package s2Member\Tracking
204 * @since 110720
205 *
206 * @return string HTML output for all Tracking Codes integrated with s2Member.
207 */
208 public static function generate_all_tracking_codes()
209 {
210 ob_start(); // Begin output buffering so we can "return".
211
212 c_ws_plugin__s2member_tracking_codes::display_signup_tracking_codes();
213 c_ws_plugin__s2member_tracking_codes::display_modification_tracking_codes();
214 c_ws_plugin__s2member_tracking_codes::display_ccap_tracking_codes();
215 c_ws_plugin__s2member_tracking_codes::display_sp_tracking_codes();
216
217 return apply_filters("ws_plugin__s2member_generate_all_tracking_codes", ob_get_clean(), get_defined_vars());
218 }
219 }
220 }
221