PluginProbe ʕ •ᴥ•ʔ
Post Affiliate Pro / trunk
Post Affiliate Pro vtrunk
1.29.5 1.29.4 1.29.3 1.29.0 1.29.1 1.29.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.5.0 1.5.1 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6.0 1.6.1 1.6.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 trunk 1.0.1 1.0.10 1.0.11 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.10.1 1.10.2 1.10.3 1.10.4 1.11.1 1.11.2 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.13.0 1.13.1 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.14.0 1.14.1 1.14.2 1.15.0 1.15.1 1.15.2 1.15.3 1.15.4 1.15.5 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.17.0 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.19.0 1.19.1 1.19.10 1.19.11 1.19.12 1.19.13 1.19.14 1.19.15 1.19.16 1.19.17 1.19.2 1.19.3 1.19.4 1.19.5 1.19.6 1.19.7 1.19.8 1.19.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.28 1.2.3 1.2.31 1.2.32 1.2.33 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.20.0 1.20.1 1.21.0 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.22.0 1.22.1 1.22.2 1.23.0 1.23.1 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.24.1 1.24.2 1.24.3 1.24.4 1.24.5 1.24.6 1.24.7 1.24.8 1.24.9 1.25.0 1.26.0 1.26.1 1.26.10 1.26.11 1.26.2 1.26.3 1.26.4 1.26.5 1.26.6 1.26.7 1.26.8 1.26.9 1.27.0 1.27.1 1.27.10 1.27.11 1.27.12 1.27.13 1.27.14 1.27.15 1.27.2 1.27.3 1.27.5 1.27.6 1.27.7 1.27.8 1.27.9 1.28.0 1.28.1 1.28.2 1.28.3
postaffiliatepro / Form / Settings / S2Member.class.php
postaffiliatepro / Form / Settings Last commit date
AdditionalOptions.class.php 3 months ago CampaignInfo.class.php 3 months ago Campaigns.class.php 3 months ago ClickTracking.class.php 3 months ago ContactForm7.class.php 3 months ago Debugging.class.php 2 months ago EDD.class.php 2 months ago General.class.php 2 months ago Integrations.class.php 3 months ago LifterLMS.class.php 3 months ago Marketpress.class.php 2 months ago MemberPress.class.php 3 months ago Membership2.class.php 3 months ago PMPro.class.php 3 months ago PPBuyNowButton.class.php 3 months ago RestrictContentPro.class.php 3 months ago S2Member.class.php 3 months ago Signup.class.php 3 months ago SimplePayPro.class.php 3 months ago StripePayments.class.php 2 months ago SureCart.class.php 3 months ago WPEasyCart.class.php 3 months ago WPPayForms.class.php 3 months ago WishListMember.class.php 3 months ago WooComm.class.php 2 months ago
S2Member.class.php
109 lines
1 <?php
2 if (!defined('ABSPATH')) exit;
3
4 class postaffiliatepro_Form_Settings_S2Member extends postaffiliatepro_Form_Base {
5 const S2MEMBER_COMMISSION_ENABLED = 's2member-commission-enabled';
6 const S2MEMBER_CONFIG_PAGE = 's2member-config-page';
7 const S2MEMBER_CAMPAIGN = 's2member-campaign';
8 const S2MEMBER_TRACK_RECURRING = 's2member-track-recurring';
9
10 public function __construct() {
11 parent::__construct(self::S2MEMBER_CONFIG_PAGE, 'options.php');
12 }
13
14 public function initSettings() {
15 register_setting(postaffiliatepro::INTEGRATIONS_SETTINGS_PAGE_NAME, self::S2MEMBER_COMMISSION_ENABLED);
16 register_setting(self::S2MEMBER_CONFIG_PAGE, self::S2MEMBER_CAMPAIGN);
17 register_setting(self::S2MEMBER_CONFIG_PAGE, self::S2MEMBER_TRACK_RECURRING);
18 }
19
20 public function addPrimaryConfigMenu() {
21 if (get_option(postaffiliatepro_Form_Settings_S2Member::S2MEMBER_COMMISSION_ENABLED) === 'true') {
22 add_submenu_page(
23 'integrations-config-page-handle',
24 's2Member',
25 's2Member',
26 'manage_options',
27 's2memberintegration-settings-page',
28 array($this, 'printConfigPage')
29 );
30 }
31 }
32
33 public function printConfigPage() {
34 $this->render();
35 }
36
37 protected function getTemplateFile() {
38 return WP_PLUGIN_DIR . '/postaffiliatepro/Template/S2MemberConfig.xtpl';
39 }
40
41 protected function initForm() {
42 $campaignHelper = new postaffiliatepro_Util_CampaignHelper();
43 $campaignList = $campaignHelper->getCampaignsList();
44
45 $campaigns = array('0' => ' ');
46 foreach ($campaignList as $row) {
47 $campaigns[$row->get('campaignid')] = htmlspecialchars($row->get('name'));
48 }
49 $this->addSelect(self::S2MEMBER_CAMPAIGN, $campaigns);
50 $this->addCheckbox(self::S2MEMBER_TRACK_RECURRING);
51
52 $this->addSubmit();
53 }
54
55 public function s2MemberPayPalButton($buttoncode, $params) {
56 $buttoncode = str_replace('name="notify_url"', 'name="notify_url" id="pap_ab78y5t4a"', $buttoncode);
57
58 $contentToAsync = 'PostAffTracker.setAccountId(\''.postaffiliatepro_Base::getAccountName().'\');
59 PostAffTracker.writeCookieToCustomField(\'pap_ab78y5t4a\', \'\', \'pap_custom\');';
60
61 if (get_option(postaffiliatepro::ASYNC_ENABLED) != 'true') {
62 $result = postaffiliatepro::getPAPTrackJSDynamicCode().'<script type="text/javascript">';
63 $result .= $contentToAsync . "</script>\n";
64 } else {
65 $result = postaffiliatepro::getPAPTrackJSAsyncCode($contentToAsync);
66 }
67
68 return $buttoncode.$result;
69 }
70
71 public function s2MemberRecurringTracking($params) {
72 // payment notification handling...
73 $paypal = $_REQUEST;
74 $this->_log('Received notification from Paypal: '.print_r($paypal, true));
75
76 if ($paypal['txn_type'] != 'subscr_payment') {
77 $this->_log('Paypal transaction type: '.$paypal['txn_type']);
78 return;
79 }
80
81 $papCookies = '';
82 if (isset($_GET['pap_custom'])) {
83 $papCookies = sanitize_text_field(wp_unslash($_GET['pap_custom']));
84 }
85
86 $query = 'AccountId='.substr($papCookies,0,8). '&visitorId='.substr($papCookies,-32);
87 $query .= '&TotalCost='.$paypal['mc_gross'].'&OrderID='.$paypal['txn_id'].'(1)';
88 $query .= '&ProductID='.urlencode($paypal['item_name']);
89 $query .= '&Currency='.$paypal['mc_currency'];
90 $query .= '&Data1='.urlencode($paypal['payer_email']);
91
92 if (get_option(self::S2MEMBER_CAMPAIGN) !== '' &&
93 get_option(self::S2MEMBER_CAMPAIGN) !== null &&
94 get_option(self::S2MEMBER_CAMPAIGN) !== 0 &&
95 get_option(self::S2MEMBER_CAMPAIGN) !== '0') {
96 $query .= '&CampaignID='.get_option(self::S2MEMBER_CAMPAIGN);
97 }
98
99 postaffiliatepro::sendRequest(postaffiliatepro::parseSaleScriptPath(), $query);
100 }
101 }
102
103 $papSubmenuPriority = 40;
104 $papIntegrationS2Member = new postaffiliatepro_Form_Settings_S2Member();
105 add_action('admin_init', array($papIntegrationS2Member, 'initSettings'), 99);
106 add_action('admin_menu', array($papIntegrationS2Member, 'addPrimaryConfigMenu'), $papSubmenuPriority);
107
108 add_filter('ws_plugin__s2member_sc_paypal_button', array($papIntegrationS2Member, 's2MemberPayPalButton'), 99, 2);
109 add_action('ws_plugin__s2member_before_paypal_notify', array($papIntegrationS2Member, 's2MemberRecurringTracking'));