PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110812
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110812
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 / includes / classes / tracking-codes.inc.php

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

151 lines 6.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Tracking Codes.
4 *
5 * Copyright: © 2009-2011
6 * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7 * ( coded in the USA )
8 *
9 * Released under the terms of the GNU General Public License.
10 * You should have received a copy of the GNU General Public License,
11 * along with this software. In the main directory, see: /licensing/
12 * If not, see: {@link http://www.gnu.org/licenses/}.
13 *
14 * @package s2Member\Tracking
15 * @since 3.5
16 */
17 if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
18 exit ("Do not access this file directly.");
19 /**/
20 if (!class_exists ("c_ws_plugin__s2member_tracking_codes"))
21 {
22 /**
23 * Tracking Codes.
24 *
25 * @package s2Member\Tracking
26 * @since 3.5
27 */
28 class c_ws_plugin__s2member_tracking_codes
29 {
30 /**
31 * Displays Signup Tracking Codes.
32 *
33 * These are stored inside s2Member's Transient Queue by the IPN processor.
34 *
35 * Tracking Codes are only displayed/processed one time.
36 * s2Member will display Tracking Codes in (1) of these 3 locations:
37 *
38 * o If possible, on the Registration Form, after returning from your Payment Gateway.
39 * o Otherwise, if possible, on the Login Form *( in the footer )* after Registration is completed.
40 * o Otherwise, in the footer of your WordPress® theme, as soon as possible; or after the Customer's very first login.
41 *
42 * @package s2Member\Tracking
43 * @since 3.5
44 *
45 * @attaches-to: ``add_action("login_footer");``
46 * @attaches-to: ``add_action("wp_footer");``
47 * @also-called-by: {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
48 *
49 * @return null After displaying possible Tracking Code(s).
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 ((($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok ()) && extract ($reg_cookies)) || (!empty ($_COOKIE["s2member_signup_tracking"]) && ($subscr_id = c_ws_plugin__s2member_utils_encryption::decrypt ($_COOKIE["s2member_signup_tracking"]))))
56 {
57 if (($code = get_transient ($transient = "s2m_" . md5 ("s2member_transient_signup_tracking_codes_" . $subscr_id))))
58 {
59 delete_transient ($transient); /* Only display this ONE time. Delete transient immediately. */
60 /**/
61 echo '<img src="' . esc_attr (site_url ("/?s2member_delete_signup_tracking_cookie=1")) . '" alt="." style="width:1px; height:1px; border:0;" />' . "\n";
62 /**/
63 eval ('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); /* Unset defined __refs, __v. */
66 /**/
67 if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ())
68 {
69 echo do_shortcode ($code) . "\n"; /* No PHP here. */
70 }
71 else /* Otherwise, safe to allow PHP code. */
72 {
73 echo do_shortcode (c_ws_plugin__s2member_utilities::evl ($code));
74 }
75 }
76 }
77 /**/
78 do_action ("ws_plugin__s2member_after_display_signup_tracking_codes", get_defined_vars ());
79 /**/
80 return; /* Return for uniformity. */
81 }
82 /**
83 * Displays Specific Post/Page Tracking Codes.
84 *
85 * These are stored inside s2Member's Transient Queue, by BOTH the IPN & Return-Data processors.
86 *
87 * Specific Post/Page Tracking Codes are only displayed/processed one time.
88 * s2Member will display Tracking Codes in the footer of your theme.
89 *
90 * @package s2Member\Tracking
91 * @since 3.5
92 *
93 * @attaches-to: ``add_action("login_footer");``
94 * @attaches-to: ``add_action("wp_footer");``
95 * @also-called-by: {@link s2Member\Tracking\c_ws_plugin__s2member_tracking_codes::generate_all_tracking_codes()}
96 *
97 * @return null After displaying possible Tracking Code(s).
98 */
99 public static function display_sp_tracking_codes ()
100 {
101 do_action ("ws_plugin__s2member_before_display_sp_tracking_codes", get_defined_vars ());
102 /**/
103 if (!empty ($_COOKIE["s2member_sp_tracking"]) && ($txn_id = c_ws_plugin__s2member_utils_encryption::decrypt ($_COOKIE["s2member_sp_tracking"])))
104 {
105 if (($code = get_transient ($transient = "s2m_" . md5 ("s2member_transient_sp_tracking_codes_" . $txn_id))))
106 {
107 delete_transient ($transient); /* Only display this ONE time. Delete transient immediately. */
108 /**/
109 echo '<img src="' . esc_attr (site_url ("/?s2member_delete_sp_tracking_cookie=1")) . '" alt="." style="width:1px; height:1px; border:0;" />' . "\n";
110 /**/
111 eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
112 do_action ("ws_plugin__s2member_during_display_sp_tracking_codes", get_defined_vars ());
113 unset ($__refs, $__v); /* Unset defined __refs, __v. */
114 /**/
115 if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ())
116 {
117 echo $code . "\n"; /* No PHP here. */
118 }
119 else /* Otherwise, it's safe to allow PHP code. */
120 {
121 eval ("?>" . $code);
122 }
123 }
124 }
125 /**/
126 do_action ("ws_plugin__s2member_after_display_sp_tracking_codes", get_defined_vars ());
127 /**/
128 return; /* Return for uniformity. */
129 }
130 /**
131 * Generates/returns all Tracking Codes integrated with s2Member.
132 *
133 * This method may be used in areas where s2Member needs to build tracking codes in a more dynamic way.
134 *
135 * @package s2Member\Tracking
136 * @since 110720
137 *
138 * @return str HTML output for all Tracking Codes integrated with s2Member.
139 */
140 public static function generate_all_tracking_codes ()
141 {
142 ob_start (); /* Begin output buffering so we can "return". */
143 /**/
144 c_ws_plugin__s2member_tracking_codes::display_signup_tracking_codes ();
145 c_ws_plugin__s2member_tracking_codes::display_sp_tracking_codes ();
146 /**/
147 return apply_filters ("ws_plugin__s2member_generate_all_tracking_codes", ob_get_clean (), get_defined_vars ());
148 }
149 }
150 }
151 ?>