s2Member v110815
Source Code: s2member\includes\menu-pages\trk-ops.inc.php
Docs updated: August 15, 2011, 4:15 pm
Open for public discussion.
(!-- s-words :: --)Source Code Documentation Packages ( Overview ) Classes Deprecated Todo Index Source Code jQuery(window).load(function(){ if(typeof location.hash === 'string' && location.hash.match(/^#/)) jQuery('olli'+location.hash).addClass('hilite'); }); jQuery(window).bind('hashchange', function(){ if(typeof location.hash === 'string' && location.hash.match(/^#/)) jQuery('olli').removeClass('hilite'); jQuery('olli'+location.hash).addClass('hilite'); }); [ full view ]s2member\includes\menu-pages\trk-ops.inc.php ?php /** * Menu page for the s2Member plugin ( API Tracking page ). * * Copyright: © 2009-2011 * {@link http://www.websharks-inc.com/ WebSharks, Inc.} * ( coded in the USA ) * * Released under the terms of the GNU General Public License. * You should have received a copy of the GNU General Public License, * along with this software. In the main directory, see: /licensing/ * If not, see: {@link http://www.gnu.org/licenses/}. * * @package s2Member\Menu_Pages * @since 3.0 */ if ( realpath ( __FILE__ ) === realpath ( $_SERVER [ "SCRIPT_FILENAME" ] ) ) exit ( "Do not access this file directly." ) ; /**/ if ( ! class_exists ( "c_ws_plugin__s2member_menu_page_trk_ops" ) ) { /** * Menu page for the s2Member plugin ( API Tracking page ). * * @package s2Member\Menu_Pages * @since 110531 */ class c_ws_plugin__s2member_menu_page_trk_ops { public function __construct ( ) { echo 'div class="wrap ws-menu-page"' . "\n" ; /**/ echo 'div id="icon-plugins" class="icon32"br //div' . "\n" ; echo 'h2s2Member® API / Tracking/h2' . "\n" ; /**/ echo 'table class="ws-menu-page-table"' . "\n" ; echo 'tbody class="ws-menu-page-table-tbody"' . "\n" ; echo 'tr class="ws-menu-page-table-tr"' . "\n" ; echo 'td class="ws-menu-page-table-l"' . "\n" ; /**/ echo 'form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form"' . "\n" ; echo 'input type="hidden" name="ws_plugin__s2member_options_save" id="ws-plugin--s2member-options-save" value="' . esc_attr ( wp_create_nonce ( "ws-plugin--s2member-options-save" ) ) . '" /' . "\n" ; echo 'input type="hidden" name="ws_plugin__s2member_configured" id="ws-plugin--s2member-configured" value="1" /' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_before_left_sections" , get_defined_vars ( ) ) ; /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_signup_tracking" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_signup_tracking" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Signup Tracking Codes"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-signup-tracking-section"' . "\n" ; echo 'h3Signup Tracking Codes ( optional )/h3' . "\n" ; echo 'pIf you use affiliate software, a list server, tracking codes from advertising networks, or the like; you\'ll want to read this section. The HTML' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' and/or PHP' ) . ' code that you enter below, will be loaded up in a web browser, after a "new", "paying" Member, completes Signup through your Payment Gateway. This is marked `Signup`, because Signup Tracking Codes will be displayed each time a "new", "paying" Member, signs up. Depending on your fee structure, this may include a first Initial Payment that establishes their Subscription, or it may not./p' . "\n" ; echo 'pSignup Tracking Codes will only be displayed once for each Member. Signup Tracking Codes are displayed right after a "new", "paying" Member, signs up successfully through your Payment Gateway, regardless of whether any money has actually been transacted initially. In other words, Signup Tracking Codes are displayed anytime a "new", "paying" Member, signs up, even if you provided them with a 100% Free Trial Period em( e.g. no money is being transacted intially )/em./p' . "\n" ; echo 'ps2Member will display your Signup Tracking Codes in one of four possible locations... strong1./strong If possible, on the Thank-You Return Page, after returning from your Payment Gateway. strong2./strong Otherwise, if possible, on the Registration Form, after returning from your Payment Gateway. emNote. If you offer a 100% free Trial Period, Tracking Codes will be displayed in location #2 when using PayPal® Standard Button integration./em strong3./strong Otherwise, if possible, on the Login Form after Registration is completed. strong4./strong Otherwise, in the footer of your WordPress® theme, as soon as possible em( immediately with s2Member Pro Form integration )/em; or after the Customer\'s very first login./p' . "\n" ; echo 'pSignup Tracking Codes are displayed for all types of Membership Level Access. Including Recurring Subscriptions em( with or without a Free Trial Period )/em, Non-Recurring Subscriptions em( with or without a Free Trial Period )/em, Lifetime Subscriptions, and even Fixed-Term Subscriptions. All of these are supported by s2Member\'s Button/Form Generators./p' . "\n" ; echo 'pSignup Tracking Codes will NOT be processed for Free Subscribers that register without going through your Payment Gateway at all. Signup Tracking Codes will NOT be processed when an "existing" User/Member pays for a new Subscription em( see: Modification Tracking Codes for that scenario )/em.' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' And, Signup Tracking Codes will NOT be processed on Buy Now transactions for Independent Custom Capabilities em( see: Capability Tracking Codes for that scenario )/em.' ) . '/p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_signup_tracking" , get_defined_vars ( ) ) ; /**/ echo 'table class="form-table"' . "\n" ; echo 'tbody' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'th' . "\n" ; echo 'label for="ws-plugin--s2member-signup-tracking-codes"' . "\n" ; echo 'Integrate Signup Tracking Codes:' . "\n" ; echo '/label' . "\n" ; echo '/th' . "\n" ; /**/ echo '/tr' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'td' . "\n" ; echo 'textarea name="ws_plugin__s2member_signup_tracking_codes" id="ws-plugin--s2member-signup-tracking-codes" rows="8" wrap="off" spellcheck="false" style="font-family:Consolas, monospace;"' . format_to_edit ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "signup_tracking_codes" ] ) . '/textareabr /' . "\n" ; echo 'Any valid XHTML / JavaScript' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' ( or even PHP )' ) . ' code will work just fine here. Just try not to put anything here that would actually be visible to the Customer. Things like 1x1 pixel images that load up silently and/or JavaScript tracking routines will be fine. Google® Analytics code works just fine, AdSense® performance tracking, as well as Yahoo® tracking and other affiliate network codes are all OK here.br /br /' . "\n" ; echo 'strongYou can also use these special Replacement Codes if you need them:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%subscr_id%%/code = The Paid Subscription ID, which remains constant throughout any & all future payments. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%initial%%/code = The Initial Fee charged during signup. If you offered a 100% Free Trial Period, this will be code0/code. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%regular%%/code = The Regular Amount of the Subscription. This value is codealways 0/code, no matter what. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%recurring%%/code = This is the amount that will be charged on a recurring basis, or code0/code if non-recurring. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%first_name%%/code = The First Name of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%last_name%%/code = The Last Name of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%full_name%%/code = The Full Name ( First & Last ) of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%payer_email%%/code = The Email Address of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%user_ip%%/code = The Customer\'s IP Address, detected during checkout via code$_SERVER["REMOTE_ADDR"]/code./li' . "\n" ; echo 'licode%%item_number%%/code = The Item Number ( colon separated codeemlevel:custom_capabilities:fixed term/em/code ) that the Subscription is for./li' . "\n" ; echo 'licode%%item_name%%/code = The Item Name ( as provided by the codedesc=""/code attribute in your Shortcode, which briefly describes the Item Number )./li' . "\n" ; echo 'licode%%initial_term%%/code = This is the term length of the Initial Period. This will be a numeric value, followed by a space, then a single letter. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%regular_term%%/code = This is the term length of the Regular Period. This will be a numeric value, followed by a space, then a single letter. [ a href="#" ?/a ]/li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Replacement Codes can also be inserted using these instructions:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%cv0%%/code = The domain of your site, which is passed through the `custom` attribute in your Shortcode./li' . "\n" ; echo 'licode%%cv1%%/code = If you need to track additional custom variables, you can pipe delimit them into the `custom` attribute; inside your Shortcode, like this: codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|cv1|cv2|cv3"/code. You can have an unlimited number of custom variables. Obviously, this is for advanced webmasters; but the functionality has been made available for those who need it./li' . "\n" ; echo '/ul' . "\n" ; echo 'strongThis example uses cv1 to record a special marketing campaign:/strongbr /' . "\n" ; echo 'em( The campaign ( i.e. christmas-promo ) could be referenced using code%%cv1%%/code )/embr /' . "\n" ; echo 'codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|christmas-promo"/code' . "\n" ; /**/ echo '/td' . "\n" ; /**/ echo '/tr' . "\n" ; echo '/tbody' . "\n" ; echo '/table' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_signup_tracking" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_modification_tracking" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_modification_tracking" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Modification Tracking Codes"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-modification-tracking-section"' . "\n" ; echo 'h3Modification Tracking Codes ( optional )/h3' . "\n" ; echo 'pIf you use affiliate software, a list server, tracking codes from advertising networks, or the like; you\'ll want to read this section. The HTML' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' and/or PHP' ) . ' code that you enter below, will be loaded up in a web browser, each time a Subscription Modification occurs. This is marked `Modification`, because Modification Tracking Codes are displayed each time an "existing" User/Member em( even if they are/were a Free Subscriber )/em signs up for a paid Subscription em( i.e. a Modification takes place against an existing account within WordPress® )/em, or an "existing" Member modifies their paid Subscription terms em( again, a Modification takes places against an existing account within WordPress® )/em. Depending on your fee structure, this may include a first Initial Payment that establishes their Subscription, or it may not./p' . "\n" ; echo 'pModification Tracking Codes are displayed right after a Member signs up and/or modifies billing terms successfully through your Payment Gateway, regardless of whether any money has actually been transacted initially. In other words, Modification Tracking Codes are displayed, even if you provided them with a 100% Free Trial Period em( e.g. no money is being transacted intially )/em./p' . "\n" ; echo 'ps2Member will display your Modification Tracking Codes in one of three possible locations... strong1./strong If possible, on the Thank-You Return Page, after returning from your Payment Gateway. strong2./strong Otherwise, if possible, on the Login Form after returning from your Payment Gateway em( i.e. when the Customer is asked to log back in )/em. strong3./strong Otherwise, in the footer of your WordPress® theme, as soon as possible em( immediately with s2Member Pro Form integration )/em; or after the Customer\'s next login./p' . "\n" ; echo 'pModification Tracking Codes are displayed for all types of Membership Level Access. Including Recurring Subscriptions em( with or without a Free Trial Period )/em, Non-Recurring Subscriptions em( with or without a Free Trial Period )/em, Lifetime Subscriptions, and even Fixed-Term Subscriptions. All of these are supported by s2Member\'s Button/Form Generators./p' . "\n" ; echo 'pModification Tracking Codes will NOT be processed for Free Subscribers that register without going through your Payment Gateway at all. Modification Tracking Codes will NOT be processed when a "new" User/Member signs up em( see: Signup Tracking Codes for that scenario )/em.' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' And, Modification Tracking Codes will NOT be processed on Buy Now transactions for Independent Custom Capabilities em( see: Capability Tracking Codes for that scenario )/em.' ) . '/p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_modification_tracking" , get_defined_vars ( ) ) ; /**/ echo 'table class="form-table"' . "\n" ; echo 'tbody' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'th' . "\n" ; echo 'label for="ws-plugin--s2member-modification-tracking-codes"' . "\n" ; echo 'Integrate Modification Tracking Codes:' . "\n" ; echo '/label' . "\n" ; echo '/th' . "\n" ; /**/ echo '/tr' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'td' . "\n" ; echo 'textarea name="ws_plugin__s2member_modification_tracking_codes" id="ws-plugin--s2member-modification-tracking-codes" rows="8" wrap="off" spellcheck="false" style="font-family:Consolas, monospace;"' . format_to_edit ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "modification_tracking_codes" ] ) . '/textareabr /' . "\n" ; echo 'Any valid XHTML / JavaScript' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' ( or even PHP )' ) . ' code will work just fine here. Just try not to put anything here that would actually be visible to the Customer. Things like 1x1 pixel images that load up silently and/or JavaScript tracking routines will be fine. Google® Analytics code works just fine, AdSense® performance tracking, as well as Yahoo® tracking and other affiliate network codes are all OK here.br /br /' . "\n" ; echo 'strongYou can also use these special Replacement Codes if you need them:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%subscr_id%%/code = The Paid Subscription ID, which remains constant throughout any & all future payments. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%initial%%/code = The Initial Fee charged during signup. If you offered a 100% Free Trial Period, this will be code0/code. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%regular%%/code = The Regular Amount of the Subscription. This value is codealways 0/code, no matter what. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%recurring%%/code = This is the amount that will be charged on a recurring basis, or code0/code if non-recurring. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%first_name%%/code = The First Name of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%last_name%%/code = The Last Name of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%full_name%%/code = The Full Name ( First & Last ) of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%payer_email%%/code = The Email Address of the Customer who purchased the Membership Subscription./li' . "\n" ; echo 'licode%%item_number%%/code = The Item Number ( colon separated codeemlevel:custom_capabilities:fixed term/em/code ) that the Subscription is for./li' . "\n" ; echo 'licode%%item_name%%/code = The Item Name ( as provided by the codedesc=""/code attribute in your Shortcode, which briefly describes the Item Number )./li' . "\n" ; echo 'licode%%initial_term%%/code = This is the term length of the Initial Period. This will be a numeric value, followed by a space, then a single letter. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%regular_term%%/code = This is the term length of the Regular Period. This will be a numeric value, followed by a space, then a single letter. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%user_first_name%%/code = The First Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_last_name%%/code = The Last Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_full_name%%/code = The Full Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_email%%/code = The Email Address associated with their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_login%%/code = The Username associated with their account. The Customer created this during registration./li' . "\n" ; echo 'licode%%user_ip%%/code = The Customer\'s original IP Address, during checkout/registration via code$_SERVER["REMOTE_ADDR"]/code./li' . "\n" ; echo 'licode%%user_id%%/code = A unique WordPress® User ID that references this account in the WordPress® database./li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Registration Fields are also supported in this Notification:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%date_of_birth%%/code would be valid; if you have a Custom Registration Field with the ID codedate_of_birth/code./li' . "\n" ; echo 'licode%%street_address%%/code would be valid; if you have a Custom Registration Field with the ID codestreet_address/code./li' . "\n" ; echo 'licode%%country%%/code would be valid; if you have a Custom Registration Field with the ID codecountry/code./li' . "\n" ; echo 'liemcode%%etc, etc...%%/code strongsee:/strong s2Member - General Options - Custom Registration Fields/em./li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Replacement Codes can also be inserted using these instructions:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%cv0%%/code = The domain of your site, which is passed through the `custom` attribute in your Shortcode./li' . "\n" ; echo 'licode%%cv1%%/code = If you need to track additional custom variables, you can pipe delimit them into the `custom` attribute; inside your Shortcode, like this: codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|cv1|cv2|cv3"/code. You can have an unlimited number of custom variables. Obviously, this is for advanced webmasters; but the functionality has been made available for those who need it./li' . "\n" ; echo '/ul' . "\n" ; echo 'strongThis example uses cv1 to record a special marketing campaign:/strongbr /' . "\n" ; echo 'em( The campaign ( i.e. christmas-promo ) could be referenced using code%%cv1%%/code )/embr /' . "\n" ; echo 'codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|christmas-promo"/code' . "\n" ; /**/ echo '/td' . "\n" ; /**/ echo '/tr' . "\n" ; echo '/tbody' . "\n" ; echo '/table' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_modification_tracking" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_ccap_tracking" , ( ! is_multisite ( ) || !c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) || is_main_site ( ) ) , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_ccap_tracking" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Capability Tracking Codes"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-ccap-tracking-section"' . "\n" ; echo 'h3Capability Tracking Codes ( optional )/h3' . "\n" ; echo 'pIf you use affiliate software, a list server, tracking codes from advertising networks, or the like; you\'ll want to read this section. The HTML' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' and/or PHP' ) . ' code that you enter below, will be loaded up in a web browser, each time Independent Custom Capabilities are purchased. This is marked `Capability`, because Capability Tracking Codes are displayed each time an "existing" User/Member em( even if they are/were a Free Subscriber )/em pays you for Independent Custom Capabilities through a Buy Now transaction. This is the only circumstance in which your Capability Tracking Codes will be displayed./p' . "\n" ; echo 'ps2Member will display your Capability Tracking Codes in one of three possible locations... strong1./strong If possible, on the Thank-You Return Page, after returning from your Payment Gateway. strong2./strong Otherwise, if possible, on the Login Form after returning from your Payment Gateway em( i.e. when the Customer is asked to log back in )/em. strong3./strong Otherwise, in the footer of your WordPress® theme, as soon as possible em( immediately with s2Member Pro Form integration )/em; or after the Customer\'s next login./p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_ccap_tracking" , get_defined_vars ( ) ) ; /**/ echo 'table class="form-table"' . "\n" ; echo 'tbody' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'th' . "\n" ; echo 'label for="ws-plugin--s2member-ccap-tracking-codes"' . "\n" ; echo 'Integrate Capability Tracking Codes:' . "\n" ; echo '/label' . "\n" ; echo '/th' . "\n" ; /**/ echo '/tr' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'td' . "\n" ; echo 'textarea name="ws_plugin__s2member_ccap_tracking_codes" id="ws-plugin--s2member-ccap-tracking-codes" rows="8" wrap="off" spellcheck="false" style="font-family:Consolas, monospace;"' . format_to_edit ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "ccap_tracking_codes" ] ) . '/textareabr /' . "\n" ; echo 'Any valid XHTML / JavaScript' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' ( or even PHP )' ) . ' code will work just fine here. Just try not to put anything here that would actually be visible to the Customer. Things like 1x1 pixel images that load up silently and/or JavaScript tracking routines will be fine. Google® Analytics code works just fine, AdSense® performance tracking, as well as Yahoo® tracking and other affiliate network codes are all OK here.br /br /' . "\n" ; echo 'strongYou can also use these special Replacement Codes if you need them:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%txn_id%%/code = The Payment Transaction ID, which is always unique for each payment received./li' . "\n" ; echo 'licode%%amount%%/code = The Amount of the payment. Most affiliate programs calculate commissions from this./li' . "\n" ; echo 'licode%%first_name%%/code = The First Name of the Customer who purchased the Independent Custom Capabilities./li' . "\n" ; echo 'licode%%last_name%%/code = The Last Name of the Customer who purchased the Independent Custom Capabilities./li' . "\n" ; echo 'licode%%full_name%%/code = The Full Name ( First & Last ) of the Customer who purchased the Independent Custom Capabilities./li' . "\n" ; echo 'licode%%payer_email%%/code = The Email Address of the Customer who purchased the Independent Custom Capabilities./li' . "\n" ; echo 'licode%%item_number%%/code = The Item Number ( colon separated codeem*level:custom_capabilities:fixed term/em/code ) that the payment is for. [ a href="#" ?/a ]/li' . "\n" ; echo 'licode%%item_name%%/code = The Item Name ( as provided by the codedesc=""/code attribute in your Shortcode, which briefly describes the Item Number )./li' . "\n" ; echo 'licode%%user_first_name%%/code = The First Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_last_name%%/code = The Last Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_full_name%%/code = The Full Name listed on their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_email%%/code = The Email Address associated with their User account. This might be different than what is on file with your Payment Gateway./li' . "\n" ; echo 'licode%%user_login%%/code = The Username associated with their account. The Customer created this during registration./li' . "\n" ; echo 'licode%%user_ip%%/code = The Customer\'s original IP Address, during checkout/registration via code$_SERVER["REMOTE_ADDR"]/code./li' . "\n" ; echo 'licode%%user_id%%/code = A unique WordPress® User ID that references this account in the WordPress® database./li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Registration Fields are also supported in this Notification:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%date_of_birth%%/code would be valid; if you have a Custom Registration Field with the ID codedate_of_birth/code./li' . "\n" ; echo 'licode%%street_address%%/code would be valid; if you have a Custom Registration Field with the ID codestreet_address/code./li' . "\n" ; echo 'licode%%country%%/code would be valid; if you have a Custom Registration Field with the ID codecountry/code./li' . "\n" ; echo 'liemcode%%etc, etc...%%/code strongsee:/strong s2Member - General Options - Custom Registration Fields/em./li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Replacement Codes can also be inserted using these instructions:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%cv0%%/code = The domain of your site, which is passed through the `custom` attribute in your Shortcode./li' . "\n" ; echo 'licode%%cv1%%/code = If you need to track additional custom variables, you can pipe delimit them into the `custom` attribute; inside your Shortcode, like this: codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|cv1|cv2|cv3"/code. You can have an unlimited number of custom variables. Obviously, this is for advanced webmasters; but the functionality has been made available for those who need it./li' . "\n" ; echo '/ul' . "\n" ; echo 'strongThis example uses cv1 to record a special marketing campaign:/strongbr /' . "\n" ; echo 'em( The campaign ( i.e. christmas-promo ) could be referenced using code%%cv1%%/code )/embr /' . "\n" ; echo 'codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|christmas-promo"/code' . "\n" ; /**/ echo '/td' . "\n" ; /**/ echo '/tr' . "\n" ; echo '/tbody' . "\n" ; echo '/table' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_ccap_tracking" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_sp_tracking" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_sp_tracking" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Specific Post/Page Tracking Codes"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-sp-tracking-section"' . "\n" ; echo 'h3Tracking Codes For Specific Post/Page Access ( optional )/h3' . "\n" ; echo 'pIf you use affiliate software, a list server, tracking codes from advertising networks, or the like; you\'ll want to read this section. The HTML' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' and/or PHP' ) . ' code that you enter below, will be loaded up in a web browser, after a Customer completes a successful transaction through your Payment Gateway; specifically for Post/Page Access. These Codes are NOT injected for any type of Membership Level Access' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' or Independent Custom Capabilities' ) . '. These are only for Specific Post/Page transactions. The Tracking Codes that you enter below, will be displayed in one of two possible locations... strong1./strong If possible, on the Thank-You Return Page, after returning from your Payment Gateway. strong2./strong Otherwise, in the footer of your WordPress® theme, as soon as possible em( immediately with s2Member Pro Form integration )/em./p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_sp_tracking" , get_defined_vars ( ) ) ; /**/ echo 'table class="form-table"' . "\n" ; echo 'tbody' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'th' . "\n" ; echo 'label for="ws-plugin--s2member-sp-tracking-codes"' . "\n" ; echo 'Specific Post/Page Tracking Codes:' . "\n" ; echo '/label' . "\n" ; echo '/th' . "\n" ; /**/ echo '/tr' . "\n" ; echo 'tr' . "\n" ; /**/ echo 'td' . "\n" ; echo 'textarea name="ws_plugin__s2member_sp_tracking_codes" id="ws-plugin--s2member-sp-tracking-codes" rows="8" wrap="off" spellcheck="false" style="font-family:Consolas, monospace;"' . format_to_edit ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "sp_tracking_codes" ] ) . '/textareabr /' . "\n" ; echo 'Any valid XHTML / JavaScript' . ( ( is_multisite ( ) && c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) && ! is_main_site ( ) ) ? '' : ' ( or even PHP )' ) . ' code will work just fine here. Just try not to put anything here that would actually be visible to the Customer. Things like 1x1 pixel images that load up silently and/or JavaScript tracking routines will be fine. Google® Analytics code works just fine, AdSense® performance tracking, as well as Yahoo® tracking and other affiliate network codes are all OK here.br /br /' . "\n" ; echo 'strongYou can also use these special Replacement Codes if you need them:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%txn_id%%/code = The Paid Transaction ID. Payment Gateways assign a unique identifier for every purchase./li' . "\n" ; echo 'licode%%amount%%/code = The full Amount that you charged for Specific Post/Page Access. This value will codealways be 0/code./li' . "\n" ; echo 'licode%%first_name%%/code = The First Name of the Customer who purchased Specific Post/Page Access./li' . "\n" ; echo 'licode%%last_name%%/code = The Last Name of the Customer who purchased Specific Post/Page Access./li' . "\n" ; echo 'licode%%full_name%%/code = The Full Name ( First & Last ) of the Customer who purchased Specific Post/Page Access./li' . "\n" ; echo 'licode%%payer_email%%/code = The Email Address of the Customer who purchased Specific Post/Page Access./li' . "\n" ; echo 'licode%%user_ip%%/code = The Customer\'s IP Address, detected during checkout via code$_SERVER["REMOTE_ADDR"]/code./li' . "\n" ; echo 'licode%%item_number%%/code = The Item Number. Ex: codeemsp:13,24,36:72/em/code ( translates to: codeemsp:comma-delimited IDs:expiration hours/em/code )./li' . "\n" ; echo 'licode%%item_name%%/code = The Item Name ( as provided by the codedesc=""/code attribute in your Shortcode, which briefly describes the Item Number )./li' . "\n" ; echo '/ul' . "\n" ; /**/ echo 'strongCustom Replacement Codes can also be inserted using these instructions:/strong' . "\n" ; echo 'ul' . "\n" ; echo 'licode%%cv0%%/code = The domain of your site, which is passed through the `custom` attribute in your Shortcode./li' . "\n" ; echo 'licode%%cv1%%/code = If you need to track additional custom variables, you can pipe delimit them into the `custom` attribute; inside your Shortcode, like this: codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|cv1|cv2|cv3"/code. You can have an unlimited number of custom variables. Obviously, this is for advanced webmasters; but the functionality has been made available for those who need it./li' . "\n" ; echo '/ul' . "\n" ; echo 'strongThis example uses cv1 to record a special marketing campaign:/strongbr /' . "\n" ; echo 'em( The campaign ( i.e. christmas-promo ) could be referenced using code%%cv1%%/code )/embr /' . "\n" ; echo 'codecustom="' . esc_html ( $_SERVER [ "HTTP_HOST" ] ) . '|christmas-promo"/code' . "\n" ; /**/ echo '/td' . "\n" ; /**/ echo '/tr' . "\n" ; echo '/tbody' . "\n" ; echo '/table' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_sp_tracking" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_integrations_header" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_integrations_header" , get_defined_vars ( ) ) ; /**/ echo 'div style="border-bottom:1px solid #DFDFDF; margin:-20px 0 9px 0; padding:0;" /div' . "\n" ; echo 'div id="icon-tools" class="icon32" style="margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0;"br //div' . "\n" ; echo 'h2 style="margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0;"API / Tracking Integrations/h2' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_integrations_header" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_idev" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_idev" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Integrating iDevAffiliate®"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-idev-section"' . "\n" ; echo 'h3Integrating iDevAffiliate® ( affiliate program management )/h3' . "\n" ; echo 'a href="http://www.idevdirect.com/14200.html" target="_blank"img src="' . esc_attr ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "c" ] [ "dir_url" ] ) . '/images/idev-logo.gif" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." //a' . "\n" ; echo 'pAdding affiliate tracking software to your site is one of the most effective ways to achieve more sales, more traffic, and more search engine ranking. a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external"iDevAffiliate®/a ( an affiliate management portal ), installs in just minutes, and can be integrated seamlessly with s2Member. We recommend a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external"iDevAffiliate® Standard/a ( $99 ) because of its proven track record, and its ability to integrate with s2Member using a variety of techniques. The most popular being a Hidden Image Tag./p' . "\n" ; echo 'pIf you choose to a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external"install iDevAffiliate®/a, you will need to configure your codeiDevAffiliate® - Shopping Cart Integration/code. Please choose codeGeneric Tracking Pixel/code. Then, grab your Hidden Image Tag, and pop the code provided by iDevAffiliate® into one of the fields for Tracking Codes em( at the top of this page )/em. You MUST also add Replacement Codes to your Hidden Image Tag. To save you some trouble, we\'ve provided some examples below, one for each of s2Member\'s Tracking Code integrations./p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_idev" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongSignup Tracking Code, for iDevAffiliate® integration:/strong/p' . "\n" ; echo 'pidev_saleamt=strong%%initial%%/strongbr /idev_ordernum=strong%%subscr_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/idev-signup-tracking-code.php" ) ) . '/p' . "\n" ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongModification Tracking Code, for iDevAffiliate® integration:/strong/p' . "\n" ; echo 'pidev_saleamt=strong%%initial%%/strongbr /idev_ordernum=strong%%subscr_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/idev-modification-tracking-code.php" ) ) . '/p' . "\n" ; /**/ if ( ! is_multisite ( ) || !c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) || is_main_site ( ) ) { echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongCapability Tracking Code, for iDevAffiliate® integration:/strong/p' . "\n" ; echo 'pidev_saleamt=strong%%amount%%/strongbr /idev_ordernum=strong%%txn_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/idev-ccap-tracking-code.php" ) ) . '/p' . "\n" ; } /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongSpecific Post/Page Tracking Code, for iDevAffiliate® integration:/strong/p' . "\n" ; echo 'pidev_saleamt=strong%%amount%%/strongbr /idev_ordernum=strong%%txn_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/idev-sp-tracking-code.php" ) ) . '/p' . "\n" ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pYour codeprofile/code ID will be assigned by iDevAffiliate®. Be sure to replace codeprofile=123/code with your own profile ID./p' . "\n" ; echo 'pemstrong*Tip*/strong iDevAffiliate® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with codes2Member - API Notifications./code A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced./em/p' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_idev" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_shareasale" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_shareasale" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Integrating ShareASale®"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-shareasale-section"' . "\n" ; echo 'h3Integrating ShareASale® ( affiliate program management )/h3' . "\n" ; echo 'a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank"img src="' . esc_attr ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "c" ] [ "dir_url" ] ) . '/images/sas-logo.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." //a' . "\n" ; echo 'pEstablished in 2000, a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="external"ShareASale®/a provides award winning technology and service; which will enable you to connect with a network of established affiliates, as well as recruit new ones. Joining ShareASale®, maximizes your ability to reach the greatest number of affiliates, with the least amount of work. At ShareASale®, you\'ll have access to an existing affiliate-base. You place your site on the market, and let their existing affiliates promote your products/services./p' . "\n" ; echo 'pIf you a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="external"become a Merchant at ShareASale®/a, you will need to configure your codeShareASale® - Sale Tracking/code. Grab your Hidden Image Tag, and pop the code provided by ShareASale® into one of the fields for Tracking Codes em( at the top of this page )/em. You MUST also add Replacement Codes to your Hidden Image Tag. To save you some trouble, we\'ve provided some examples below, one for each of s2Member\'s Tracking Code integrations./p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_shareasale" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongSignup Tracking Code, for ShareASale® integration:/strong/p' . "\n" ; echo 'pamount=strong%%initial%%/strongbr /tracking=strong%%subscr_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/sas-signup-tracking-code.php" ) ) . '/p' . "\n" ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongModification Tracking Code, for ShareASale® integration:/strong/p' . "\n" ; echo 'pamount=strong%%initial%%/strongbr /tracking=strong%%subscr_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/sas-modification-tracking-code.php" ) ) . '/p' . "\n" ; /**/ if ( ! is_multisite ( ) || !c_ws_plugin__s2member_utils_conds:: is_multisite_farm ( ) || is_main_site ( ) ) { echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongCapability Tracking Code, for ShareASale® integration:/strong/p' . "\n" ; echo 'pamount=strong%%amount%%/strongbr /tracking=strong%%txn_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/sas-ccap-tracking-code.php" ) ) . '/p' . "\n" ; } /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pstrongSpecific Post/Page Tracking Code, for ShareASale® integration:/strong/p' . "\n" ; echo 'pamount=strong%%amount%%/strongbr /tracking=strong%%txn_id%%/strong/p' . "\n" ; echo 'p' . c_ws_plugin__s2member_utils_strings:: highlight_php ( file_get_contents ( dirname ( __FILE__ ) . "/code-samples/sas-sp-tracking-code.php" ) ) . '/p' . "\n" ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; echo 'pYour codemerchantID/code will be assigned by ShareASale®. Be sure to replace codemerchantID=123/code with the one they assign you./p' . "\n" ; echo 'pemstrong*Tip*/strong ShareASale® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with codes2Member - API Notifications./code A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced./em/p' . "\n" ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_shareasale" , get_defined_vars ( ) ) ; } /**/ if ( apply_filters ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_display_other_methods" , true , get_defined_vars ( ) ) ) { do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_before_other_methods" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-group" title="Other Tracking Methods Available"' . "\n" ; /**/ echo 'div class="ws-menu-page-section ws-plugin--s2member-other-methods-section"' . "\n" ; echo 'h3Other Tracking Methods Are Available ( there\'s always a way )/h3' . "\n" ; echo 'pCheck the s2Member API Notifications panel. You\'ll find additional layers of automation available through the use of the `Signup`, `Registration`, `Payment`, `Modification`, `EOT/Deletion`, `Refund/Reversal`, and `Specific Post/Page` Notifications that are available to you through the s2Member API. The s2Member API Notifications make it possible to integrate with 3rd party applications; like list servers, affiliate programs, and other back-office routines; in more advanced ways. Since s2Member API Notifications operate silently on the back-end, they tend to be more reliable and also more versatile. That being said, nothing replaces the simplicity of Tracking Codes. The more advanced API Notifications are NOT always the best tool for the job. For instance, API Notifications will NOT work with Google® Analytics, or 1 pixel <img> tags. They operate silently behind-the-scene, using HTTP connections, as opposed to being loaded in a browser./p' . "\n" ; do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_during_other_methods" , get_defined_vars ( ) ) ; echo '/div' . "\n" ; /**/ echo '/div' . "\n" ; /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_during_left_sections_after_other_methods" , get_defined_vars ( ) ) ; } /**/ do_action ( "ws_plugin__s2member_during_trk_ops_page_after_left_sections" , get_defined_vars ( ) ) ; /**/ echo 'div class="ws-menu-page-hr"/div' . "\n" ; /**/ echo 'p class="submit"input type="submit" class="button-primary" value="Save All Changes" //p' . "\n" ; /**/ echo '/form' . "\n" ; /**/ echo '/td' . "\n" ; /**/ echo 'td class="ws-menu-page-table-r"' . "\n" ; c_ws_plugin__s2member_menu_pages_rs:: display ( ) ; echo '/td' . "\n" ; /**/ echo '/tr' . "\n" ; echo '/tbody' . "\n" ; echo '/table' . "\n" ; /**/ echo '/div' . "\n" ; } } } /**/ new c_ws_plugin__s2member_menu_page_trk_ops ( ) ; ? [ full view ]s2member\includes\menu-pages\trk-ops.inc.php Source Code Documentation Packages ( Overview ) Classes Deprecated Todo Index Source Code(!-- :: s-words --)Statistics: Posted by System Robot — August 15th, 2011, 3:15 pm
]]>