Changeset 2340110
- Timestamp:
- 07/14/2020 06:15:33 AM (6 years ago)
- Location:
- clickervolt/trunk
- Files:
-
- 4 added
- 15 edited
-
admin/errorsCatcher.php (modified) (1 diff)
-
admin/js/affiliate-networks.js (modified) (5 diffs)
-
admin/js/functions.js (modified) (1 diff)
-
admin/setup.php (modified) (1 diff)
-
admin/views/dashboardTabSettings.php (modified) (1 diff)
-
admin/views/newLink.php (modified) (1 diff)
-
clickervolt.php (modified) (1 diff)
-
db/db.php (modified) (1 diff)
-
db/objects/cvSettings.php (modified) (2 diffs)
-
db/tableClicks.php (modified) (1 diff)
-
pixel/actionHandler.php (modified) (2 diffs)
-
pixel/ipn (added)
-
pixel/ipn/ipn.php (added)
-
pixel/ipn/paykickstart.php (added)
-
pixel/ipn/warriorplus.php (added)
-
pixel/pixelInfo.php (modified) (5 diffs)
-
readme.txt (modified) (3 diffs)
-
utils/arrayVars.php (modified) (2 diffs)
-
utils/uuid.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
clickervolt/trunk/admin/errorsCatcher.php
r2339223 r2340110 5 5 class ErrorsCatcher 6 6 { 7 static private $started = false; 8 7 9 static function start() 8 10 { 9 set_error_handler(function ($errno, $errstr, $errfile, $errline) { 10 if (strpos($errfile, 'clickervolt') !== false) { 11 self::exception(new \ErrorException($errstr, $errno, 0, $errfile, $errline)); 12 } 13 }); 11 if (!self::$started) { 12 set_error_handler(function ($errno, $errstr, $errfile, $errline) { 13 if (strpos($errfile, 'clickervolt') !== false) { 14 self::exception(new \ErrorException($errstr, $errno, 0, $errfile, $errline)); 15 } 16 }); 17 set_exception_handler('\\ClickerVolt\\ErrorsCatcher::exception'); 14 18 15 set_exception_handler('\\ClickerVolt\\ErrorsCatcher::exception'); 19 self::$started = true; 20 } 16 21 } 17 22 -
clickervolt/trunk/admin/js/affiliate-networks.js
r2314546 r2340110 15 15 this.postback_transaction = postback_transaction; 16 16 this.postback_revenue = postback_revenue; 17 this.ipn_integration_name = null; 18 } 19 20 asIPN(integration_name) { 21 this.ipn_integration_name = integration_name; 22 return this; 17 23 } 18 24 … … 38 44 39 45 getPostbackURL() { 40 return ClickerVoltLinkController.replaceVarsFromConvPixel(clickerVoltVars.const.ConvPostbackURLTemplate, { 46 var basePixel = clickerVoltVars.const.ConvPostbackURLTemplate; 47 if (this.ipn_integration_name) { 48 basePixel = clickerVoltVars.const.ConvIPNURLTemplate.replace('-INTEGRATION_NAME-', this.ipn_integration_name); 49 } 50 return ClickerVoltLinkController.replaceVarsFromConvPixel(basePixel, { 41 51 'cid': this.getPostbackSubID() || "", 42 52 'type': 'conversion', … … 59 69 if (!AffiliateNetworkHelper.networks) { 60 70 AffiliateNetworkHelper.networks = {}; 71 72 // Affiliate networks with S2S postback support 61 73 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("A4D", "aff_sub", "{aff_sub}", "{transaction_id}", "{payout}")); 62 74 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("ActionAds", "aff_sub", "{aff_sub}", "{transaction_id}", "{payout}")); … … 92 104 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("GiddyUp", "sub1", "{sub1}", "{transaction_id}", "{payout_amount}")); 93 105 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("Global Wide Media", "s2", "#s2#", "#tid#", "#price#")); 94 // AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("JVZoo", "tid", null, null, null));95 106 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("LeadBit", "sub2", "{sub2}", '{status}-{id}', "{cost}")); 96 107 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("LetsCPA", "sub2", "{sub2}", '{status}-{transactionid}', "{sum}")); … … 117 128 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("YTZ", "s1", "{SUB1}", null, "{REVENUE}")); 118 129 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("Zorka.Mobi", "ref_id", "{ref_id}", "{offer_id}", "{sum}")); 130 131 // Affiliate networks with IPN support 132 // AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("JVZoo", "tid", null, null, null)); 133 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("PayKickstart", "tid", "tracking_id", "product_name", "affiliate_commission_amount").asIPN("paykickstart")); 134 AffiliateNetworkHelper.registerNetwork(new AffiliateNetwork("WarriorPlus", "/[cid]", null, null, null).asIPN("warriorplus")); 135 136 // Sort by affiliate network name 137 var ordered = {}; 138 Object.keys(AffiliateNetworkHelper.networks).sort().forEach(function (key) { 139 ordered[key] = AffiliateNetworkHelper.networks[key]; 140 }); 141 AffiliateNetworkHelper.networks = ordered; 119 142 } 120 143 return AffiliateNetworkHelper.networks; -
clickervolt/trunk/admin/js/functions.js
r2170406 r2340110 737 737 } 738 738 739 static replaceAll(str, find, replace) { 740 return str.replace(new RegExp(find, 'g'), replace); 741 } 742 739 743 /** 740 744 * See https://stackoverflow.com/questions/11832914/round-to-at-most-2-decimal-places-only-if-necessary -
clickervolt/trunk/admin/setup.php
r2339223 r2340110 187 187 'ConvPixelHTMLTemplate' => json_encode(PixelInfo::getPixelHTML('-CID-', '-TYPE-', '-NAME-', '-REV-', '-SLUG-')), 188 188 'ConvPostbackURLTemplate' => json_encode(PixelInfo::getPostbackURL('-CID-', '-TYPE-', '-NAME-', '-REV-')), 189 'ConvIPNURLTemplate' => json_encode(PixelInfo::getIPNURL('-INTEGRATION_NAME-', '-CID-', '-TYPE-', '-NAME-', '-REV-')), 189 190 'CVSettings' => json_encode(self::get_class_consts('ClickerVolt\\CVSettings')), 190 191 ], -
clickervolt/trunk/admin/views/dashboardTabSettings.php
r2339223 r2340110 22 22 <div id="default-fraud-detection-container"></div> 23 23 </div> 24 25 <!-- 26 <div class="settings-section"> 27 <h2>IPN Secret Keys</h2> 28 <p> 29 <label>WarriorPlus: 30 <input type="text" name="ipn-key-warriorplus"> 31 </label> 32 </p> 33 <p> 34 <label>Clickbank: 35 <input type="text" name="ipn-key-clickbank"> 36 </label> 37 </p> 38 </div> 39 --> 24 40 25 41 <div> -
clickervolt/trunk/admin/views/newLink.php
r2316659 r2340110 2248 2248 var network = AffiliateNetworkHelper.getNetwork(networkName); 2249 2249 if (network) { 2250 var $addVariableButton = $urlBlock.find('.button.add-url-variable'); 2251 var $variableRow = ClickerVoltLinkController.addVariableToUrl($addVariableButton); 2252 $variableRow.find('.url-variable-value').val(cidToken).trigger('change'); 2253 $variableRow.find('.url-variable-key').val(network.getTID()).trigger('input'); 2250 if (network.getTID().indexOf(cidToken) == -1) { 2251 var $addVariableButton = $urlBlock.find('.button.add-url-variable'); 2252 var $variableRow = ClickerVoltLinkController.addVariableToUrl($addVariableButton); 2253 $variableRow.find('.url-variable-value').val(cidToken).trigger('change'); 2254 $variableRow.find('.url-variable-key').val(network.getTID()).trigger('input'); 2255 } else { 2256 // The TID contains the [cid] token... it's not a query variable, but rather 2257 // a string to append to the URL... 2258 var $urlInput = $urlBlock.find('input.url'); 2259 $urlInput.val($urlInput.val() + network.getTID()); 2260 } 2254 2261 2255 2262 $urlBlock.find('.aff-network-postback-url').val(network.getPostbackURL()); -
clickervolt/trunk/clickervolt.php
r2339223 r2340110 5 5 * Plugin URI: https://clickervolt.com/ 6 6 * Description: Advanced click tracking, link cloaking and affiliate campaigns management made easy. 7 * Version: 1.16 07 * Version: 1.162 8 8 * Author: ClickerVolt.com 9 9 * License: GPLv3 -
clickervolt/trunk/db/db.php
r2339223 r2340110 11 11 class DB 12 12 { 13 const VERSION = 1.16 0;13 const VERSION = 1.162; 14 14 15 15 const OPTION_VERSION = 'clickervolt-version'; -
clickervolt/trunk/db/objects/cvSettings.php
r2314546 r2340110 7 7 class CVSettings 8 8 { 9 10 9 const WP_OPTION_KEY = 'clickervolt-settings'; 11 10 … … 18 17 const VALUE_IP_DETECTION_TYPE_AUTO = 'auto'; 19 18 const VALUE_IP_DETECTION_TYPE_REMOTE_ADDR = 'REMOTE_ADDR'; 20 21 19 22 20 static private $settings = null; -
clickervolt/trunk/db/tableClicks.php
r2314546 r2340110 77 77 function __construct($array = []) 78 78 { 79 80 79 $this->fromArray($array); 81 80 -
clickervolt/trunk/pixel/actionHandler.php
r2181646 r2340110 8 8 class ActionHandler 9 9 { 10 11 10 const URL_PARAM_CLICK_ID = 'cid'; 12 11 const URL_PARAM_SLUG = 'slug'; … … 25 24 function addAction($actionParams = []) 26 25 { 27 28 26 $defaultActionParams = [ 29 27 'clickId' => null, -
clickervolt/trunk/pixel/pixelInfo.php
r2286273 r2340110 7 7 class PixelInfo 8 8 { 9 10 9 /** 11 10 * … … 13 12 static function getPixelHTML($defaultCID = '', $defaultType = '', $defaultName = '', $defaultRevenue = '', $defaultSlug = '') 14 13 { 15 $url = self::getURL( null, $defaultType, $defaultName, $defaultRevenue, $defaultSlug);14 $url = self::getURL("/pixel/do.php", null, $defaultType, $defaultName, $defaultRevenue, $defaultSlug); 16 15 return "<iframe style='width: 1px; height: 1px;' src='{$url}'></iframe>"; 17 16 } … … 22 21 static function getPostbackURL($defaultCID = '', $defaultType = '', $defaultName = '', $defaultRevenue = '') 23 22 { 24 return self::getURL( $defaultCID, $defaultType, $defaultName, $defaultRevenue);23 return self::getURL("/pixel/do.php", $defaultCID, $defaultType, $defaultName, $defaultRevenue); 25 24 } 26 25 … … 28 27 * 29 28 */ 30 static function getURL($defaultCID = '', $defaultType = '', $defaultName = '', $defaultRevenue = '', $defaultSlug = '') 29 static function getIPNURL($defaultIntegrationName = 'ipn', $defaultCID = '', $defaultType = '', $defaultName = '', $defaultRevenue = '') 30 { 31 return self::getURL("/pixel/ipn/{$defaultIntegrationName}.php", $defaultCID, $defaultType, $defaultName, $defaultRevenue); 32 } 33 34 /** 35 * 36 */ 37 private static function getURL($scriptPath, $defaultCID = '', $defaultType = '', $defaultName = '', $defaultRevenue = '', $defaultSlug = '') 31 38 { 32 39 require_once __DIR__ . '/../utils/urlTools.php'; … … 56 63 } 57 64 $queries = implode('&', $queries); 58 return URLTools::getPluginURL() . " /pixel/do.php?{$queries}";65 return URLTools::getPluginURL() . "{$scriptPath}?{$queries}"; 59 66 } 60 67 } -
clickervolt/trunk/readme.txt
r2339223 r2340110 231 231 * Mobipium 232 232 * MobVista 233 * PayKickstart via IPN 233 234 * Shareasale 234 235 * SpicyOffers … … 239 240 * W4 240 241 * WapEmpire 242 * WarriorPlus via IPN 241 243 * Yep Ads 242 244 * YTZ … … 281 283 282 284 == Changelog == 285 = 1.162 = 286 * Added conversion IPN for PayKickstart affiliate network 287 * Added conversion IPN for WarriorPlus affiliate network 288 283 289 = 1.160 = 284 290 * Fixed mixed content ajax errors on some configurations -
clickervolt/trunk/utils/arrayVars.php
r2181646 r2340110 30 30 * $array['key1']['key2']['key3']. 31 31 * @param mixed $default - default value if key not found 32 * @param string $pathSeparator - to override the path separator 32 33 */ 33 static function getFromPath($array, $path, $default = null )34 static function getFromPath($array, $path, $default = null, $pathSeparator = '/') 34 35 { 35 36 $val = $default; 36 37 37 38 if (!empty($array)) { 38 $keys = explode( '/', $path);39 $keys = explode($pathSeparator, $path); 39 40 $nbKeys = count($keys); 40 41 … … 60 61 * 61 62 */ 62 static function setFromPath(&$array, $path, $value )63 static function setFromPath(&$array, $path, $value, $pathSeparator = '/') 63 64 { 64 $keys = explode( '/', $path);65 $keys = explode($pathSeparator, $path); 65 66 $nbKeys = count($keys); 66 67 -
clickervolt/trunk/utils/uuid.php
r2165181 r2340110 5 5 class UUID 6 6 { 7 8 7 static function alphaNum($maxLength = 16) 9 8 { 10 11 9 $uid = uniqid(); 12 10 $uidLength = strlen($uid); … … 18 16 $suffix .= substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, 1); 19 17 } 20 21 18 $uid .= $suffix; 22 19 }
Note: See TracChangeset
for help on using the changeset viewer.