public static function handle_commission_tracking_hook($args) { /* * The args array must have the following 3 details * $args['txn_id'] * $args['amount'] * $args['aff_id'] */ WPAM_Logger::log_debug('handle_commission_tracking_hook() - Txn ID : ' . $args['txn_id'] . ', Amount: ' . $args['amount'] . ', Affiliate ID: ' . $args['aff_id']); WPAM_Commission_Tracking::award_commission($args); }
protected function doOverviewHome($request, $affiliate) { $db = new WPAM_Data_DataAccess(); $accountSummary = $db->getTransactionRepository()->getAccountSummary($affiliate->affiliateId); $args = array(); $args['aff_id'] = $affiliate->affiliateId; //show total clicks for today $args['start_date'] = date("Y-m-d H:i:s", strtotime('today')); $args['end_date'] = date("Y-m-d H:i:s", strtotime('tomorrow')); $today_clicks = WPAM_Click_Tracking::get_total_clicks($args); //show total number of transactions for today $today_transaction_count = WPAM_Commission_Tracking::get_transaction_count($args); //show total commission for today $today_total_commission = WPAM_Commission_Tracking::get_total_commission_amount($args); //show total clicks for this month $args['start_date'] = date("Y-m-d H:i:s", strtotime(date("Y-m-01"))); $args['end_date'] = date("Y-m-d H:i:s", strtotime(date("Y-m-01", strtotime("+1 month")))); $monthly_clicks = WPAM_Click_Tracking::get_total_clicks($args); //show total number of transactions for this month $monthly_transaction_count = WPAM_Commission_Tracking::get_transaction_count($args); //show total commission for this month $monthly_total_commission = WPAM_Commission_Tracking::get_total_commission_amount($args); $response = new WPAM_Pages_TemplateResponse('affiliate_cp_home'); $response->viewData['accountStanding'] = $accountSummary->standing; $response->viewData['commissionRateString'] = $this->getCommissionRateString($affiliate); $response->viewData['monthVisitors'] = $monthly_clicks; //$eventSummary->visits; $response->viewData['monthClosedTransactions'] = $monthly_transaction_count; //$eventSummary->purchases; $response->viewData['monthRevenue'] = $monthly_total_commission; //$monthAccountSummary->credits; $response->viewData['todayVisitors'] = $today_clicks; //$todayEventSummary->visits; $response->viewData['todayClosedTransactions'] = $today_transaction_count; //$todayEventSummary->purchases; $response->viewData['todayRevenue'] = $today_total_commission; //$todayAccountSummary->credits; if (get_option(WPAM_PluginConfig::$AffEnableImpressions)) { $response->viewData['monthImpressions'] = $db->getImpressionRepository()->getImpressionsForRange(strtotime(date("Y-m-01")), strtotime(date("Y-m-01", strtotime("+1 month"))), $affiliate->affiliateId); $response->viewData['todayImpressions'] = $db->getImpressionRepository()->getImpressionsForRange(strtotime('today'), strtotime('tomorrow'), $affiliate->affiliateId); } return $response; }
public function WooCommerceRefundTransaction($order_id) { WPAM_Logger::log_debug('WooCommerce integration - order refunded. Order ID: ' . $order_id); //$order = new WC_Order($order_id); $txn_id = $order_id; WPAM_Commission_Tracking::refund_commission($txn_id); }
protected function getDetailForm($affiliateFields, $model, $request = null, $validationResult = null) { //add widget_form_error js to affiliate_detail page add_action('admin_footer', array($this, 'onFooter')); $db = new WPAM_Data_DataAccess(); $response = new WPAM_Pages_TemplateResponse('admin/affiliate_detail'); $response->viewData['affiliateFields'] = $affiliateFields; $response->viewData['affiliate'] = $model; $where = array('affiliateId' => $model->affiliateId); $affiliateHelper = new WPAM_Util_AffiliateFormHelper(); $affiliateHelper->addTransactionDateRange($where, $request, $response); $response->viewData['transactions'] = $db->getTransactionRepository()->loadMultipleBy($where, array('dateCreated' => 'desc')); $response->viewData['showBalance'] = true; $response->viewData['paymentMethods'] = $affiliateHelper->getPaymentMethods(); $response->viewData['paymentMethod'] = isset($request['ddPaymentMethod']) ? $request['ddPaymentMethod'] : $model->paymentMethod; $response->viewData['paypalEmail'] = isset($request['txtPaypalEmail']) ? $request['txtPaypalEmail'] : $model->paypalEmail; $response->viewData['bountyType'] = isset($request['ddBountyType']) ? $request['ddBountyType'] : $model->bountyType; $response->viewData['bountyAmount'] = isset($request['txtBountyAmount']) ? $request['txtBountyAmount'] : $model->bountyAmount; $this->addBalance($response->viewData['transactions'], $db->getTransactionRepository()->getBalance($model->affiliateId, empty($request['from']) ? NULL : $request['from']), 'desc'); $accountStanding = $db->getTransactionRepository()->getAccountSummary($model->affiliateId); $response->viewData['accountStanding'] = $accountStanding->standing; $response->viewData['accountCredits'] = $accountStanding->credits; $response->viewData['accountDebits'] = $accountStanding->debits; $response->viewData['accountAdjustments'] = $accountStanding->adjustments; $response->viewData['user'] = new WP_User($model->userId); if ($request !== null) { $response->viewData['request'] = $request; } if ($validationResult !== null) { //die(print_r($validationResult, true)); $response->viewData['validationResult'] = $validationResult; } $response->viewData['affiliateFields'] = $affiliateFields; $response->viewData['creatives'] = $db->getCreativesRepository()->loadAllActiveNoDeletes(); if (get_option(WPAM_PluginConfig::$AffEnableImpressions)) { $where = array('sourceAffiliateId' => $model->affiliateId); $response->viewData['impressions'] = $db->getImpressionRepository()->loadMultipleByLimit($where, array('dateCreated' => 'desc'), 100); $creativeNames = array(); foreach ($response->viewData['impressions'] as $impression) { if (!array_key_exists($impression->sourceCreativeId, $creativeNames)) { $creativeNames[$impression->sourceCreativeId] = $db->getCreativesRepository()->load($impression->sourceCreativeId)->name; } } $response->viewData['creativeNames'] = $creativeNames; $where = array('sourceAffiliateId' => $model->affiliateId); $response->viewData['impressionCount'] = $db->getImpressionRepository()->count($where); } //$summary = $db->getEventRepository()->getSummary ( $model->affiliateId ); $args = array(); $args['aff_id'] = $model->affiliateId; $total_clicks = WPAM_Click_Tracking::get_all_time_total_clicks($args); $total_transaction_count = WPAM_Commission_Tracking::get_all_time_transaction_count($args); $response->viewData['visitCount'] = $total_clicks; //$summary->visits; $response->viewData['purchaseCount'] = $total_transaction_count; //$summary->purchases; //save for form validation in the footer $this->response = $response; return $response; }
public function handleCheckoutWithRefKey($purchaseLogId, $purchaseAmount, $strRefKey) { //TODO start - we only need this to block of code to keep backwards compatibility. later when we will directly get affiliate ID from cookie it can be deleted $db = new WPAM_Data_DataAccess(); $binConverter = new WPAM_Util_BinConverter(); $affiliate = NULL; global $wpdb; // keeping this block and "($affiliate !== NULL)" seperate to // help indicate any problems // (purchase log recorded w/o a purchase event) if (!empty($strRefKey)) { $query = "SELECT * FROM " . WPAM_TRACKING_TOKENS_TBL . " WHERE trackingKey = %s"; $trackingToken = $wpdb->get_row($wpdb->prepare($query, $strRefKey)); if ($trackingToken != null) { $trackingTokenId = $trackingToken->trackingTokenId; $query = "SELECT * FROM " . WPAM_TRACKING_TOKENS_PURCHASE_LOGS_TBL . " WHERE trackingTokenId = %s AND purchaseLogId = %s"; $ttpl = $wpdb->get_row($wpdb->prepare($query, $trackingTokenId, $purchaseLogId)); if ($ttpl != null) { } else { $table = WPAM_TRACKING_TOKENS_PURCHASE_LOGS_TBL; $data = array(); $data['trackingTokenId'] = $trackingTokenId; $data['purchaseLogId'] = $purchaseLogId; $wpdb->insert($table, $data); //this will be handled further down if the affiliate is set and the purchase was successful //$db->getEventRepository()->quickInsert(time(), $strRefKey, 'purchase'); } } } //TODO end $args = array(); $args['txn_id'] = $purchaseLogId; $args['amount'] = $purchaseAmount; if (is_numeric($strRefKey)) { //$strRefKey contains affiliate ID from the new cookie system (wpam_id) $args['aff_id'] = $strRefKey; } WPAM_Commission_Tracking::award_commission($args); }