示例#1
0
    if (!preg_match('#^Error:#', $result)) {
        $result = str_replace('"', '', $result);
        $ids = array();
        $trans = explode("\n", $result);
        foreach ($trans as $value) {
            $options = explode(',', $value);
            if (!empty($options[3])) {
                $ids[] = $vbulletin->db->escape_string($options[3]);
            }
        }
        if (!empty($ids)) {
            $insert = array();
            $updatetrans = array();
            $subs = $vbulletin->db->query_read("\n\t\t\t\tSELECT paymentinfo.subscriptionsubid, subscription.subscriptionid, subscription.cost,\n\t\t\t\t\tpaymentinfo.userid, paymentinfo.paymentinfoid, paymenttransaction.amount, paymenttransaction.transactionid,\n\t\t\t\t\tpaymenttransaction.paymenttransactionid\n\t\t\t\tFROM " . TABLE_PREFIX . "paymenttransaction AS paymenttransaction\n\t\t\t\tINNER JOIN " . TABLE_PREFIX . "paymentinfo AS paymentinfo ON (paymentinfo.paymentinfoid = paymenttransaction.paymentinfoid)\n\t\t\t\tINNER JOIN " . TABLE_PREFIX . "subscription AS subscription ON (paymentinfo.subscriptionid = subscription.subscriptionid)\n\t\t\t\tINNER JOIN " . TABLE_PREFIX . "subscriptionlog AS subscriptionlog ON (subscriptionlog.subscriptionid = subscription.subscriptionid AND subscriptionlog.userid = paymentinfo.userid)\n\t\t\t\tWHERE transactionid IN ('" . implode("','", $ids) . "')\n\t\t\t\t\tAND subscriptionlog.status = 1\n\t\t\t\t\tAND paymenttransaction.reversed = 0\n\t\t\t");
            while ($sub = $vbulletin->db->fetch_array($subs)) {
                $subobj->delete_user_subscription($sub['subscriptionid'], $sub['userid'], $sub['subscriptionsubid']);
                $insert[] = "2, " . TIMENOW . ", 'usd', {$sub['amount']}, '" . $vbulletin->db->escape_string($sub['transactionid'] . 'R') . "', {$sub['paymentinfoid']}, {$api['paymentapiid']}";
                $updatetrans[] = $sub['paymenttransactionid'];
                $count++;
            }
            if (!empty($insert)) {
                $vbulletin->db->query_write("\n\t\t\t\t\tINSERT INTO " . TABLE_PREFIX . "paymenttransaction\n\t\t\t\t\t(state, dateline, currency, amount, transactionid, paymentinfoid, paymentapiid)\n\t\t\t\t\tVALUES\n\t\t\t\t\t(" . implode('),(', $insert) . ")\n\t\t\t\t");
                $vbulletin->db->query_write("\n\t\t\t\t\tUPDATE " . TABLE_PREFIX . "paymenttransaction\n\t\t\t\t\tSET reversed = 1\n\t\t\t\t\tWHERE paymenttransactionid IN (" . implode(', ', $updatetrans) . ")\n\t\t\t\t");
            }
        }
        $log = $count;
    } else {
        // Error
        $log = htmlspecialchars_uni($result);
    }
}
    toggle_subs();
    define('CP_REDIRECT', 'subscriptions.php?do=modify');
    print_stop_message('saved_subscription_x_successfully', htmlspecialchars_uni($vbulletin->GPC['title']));
}
// ###################### Start Remove #######################
if ($_REQUEST['do'] == 'remove') {
    print_delete_confirmation('subscription', $vbulletin->GPC['subscriptionid'], 'subscriptions', 'kill', 'subscription', 0, $vbphrase['doing_this_will_remove_additional_access_subscription'], 'subscriptionid');
}
// ###################### Start Kill #######################
if ($_POST['do'] == 'kill') {
    $db->query_write("\n\t\tDELETE FROM " . TABLE_PREFIX . "phrase\n\t\tWHERE fieldname = 'subscription' AND\n\t\t\t\tvarname IN ('sub" . $vbulletin->GPC['subscriptionid'] . "_title', 'sub" . $vbulletin->GPC['subscriptionid'] . "_desc')\n\t");
    require_once DIR . '/includes/adminfunctions_language.php';
    build_language();
    $users = $db->query_read("\n\t\tSELECT * FROM " . TABLE_PREFIX . "subscriptionlog\n\t\tWHERE subscriptionid = " . $vbulletin->GPC['subscriptionid'] . " AND\n\t\tstatus = 1\n\t");
    while ($user = $db->fetch_array($users)) {
        $subobj->delete_user_subscription($vbulletin->GPC['subscriptionid'], $user['userid']);
    }
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscription WHERE subscriptionid = " . $vbulletin->GPC['subscriptionid']);
    $db->query_write("DELETE FROM " . TABLE_PREFIX . "subscriptionlog WHERE subscriptionid = " . $vbulletin->GPC['subscriptionid']);
    toggle_subs();
    define('CP_REDIRECT', 'subscriptions.php?do=modify');
    print_stop_message('deleted_subscription_successfully');
}
// ###################### Start find #######################
if ($_REQUEST['do'] == 'find') {
    $vbulletin->input->clean_array_gpc('r', array('status' => TYPE_INT, 'orderby' => TYPE_NOHTML, 'limitstart' => TYPE_INT, 'limitnumber' => TYPE_INT));
    $condition = '1=1';
    $condition .= iif($vbulletin->GPC['subscriptionid'], " AND subscriptionid=" . $vbulletin->GPC['subscriptionid']);
    $condition .= $vbulletin->GPC['status'] > -1 ? ' AND status = ' . $vbulletin->GPC['status'] : '';
    switch ($vbulletin->GPC['orderby']) {
        case 'subscriptionid':
示例#3
0
if (!is_object($vbulletin->db)) {
    exit;
}
// ########################## REQUIRE BACK-END ############################
require_once DIR . '/includes/class_paid_subscription.php';
// ########################################################################
// ######################### START MAIN SCRIPT ############################
// ########################################################################
$subobj = new vB_PaidSubscription($vbulletin);
$subobj->cache_user_subscriptions();
if (is_array($subobj->subscriptioncache)) {
    foreach ($subobj->subscriptioncache as $key => $subscription) {
        // disable people :)
        $subscribers = $vbulletin->db->query_read("\n\t\t\tSELECT userid\n\t\t\tFROM " . TABLE_PREFIX . "subscriptionlog\n\t\t\tWHERE subscriptionid = {$subscription['subscriptionid']}\n\t\t\t\tAND expirydate <= " . TIMENOW . "\n\t\t\t\tAND status = 1\n\t\t");
        while ($subscriber = $vbulletin->db->fetch_array($subscribers)) {
            $subobj->delete_user_subscription($subscription['subscriptionid'], $subscriber['userid'], -1, true);
        }
    }
    // time for the reminders
    $subscriptions_reminders = $vbulletin->db->query_read("\n\t\tSELECT subscriptionlog.subscriptionid, subscriptionlog.userid, subscriptionlog.expirydate, user.username, user.email, user.languageid\n\t\tFROM " . TABLE_PREFIX . "subscriptionlog AS subscriptionlog\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = subscriptionlog.userid)\n\t\tWHERE subscriptionlog.expirydate >= " . (TIMENOW + 86400 * 2) . "\n\t\t\tAND subscriptionlog.expirydate <= " . (TIMENOW + 86400 * 3) . "\n\t\t\tAND status = 1\n\t");
    vbmail_start();
    while ($subscriptions_reminder = $vbulletin->db->fetch_array($subscriptions_reminders)) {
        require_once DIR . '/includes/functions_misc.php';
        $subscription_title = fetch_phrase('sub' . $subscriptions_reminder['subscriptionid'] . '_title', 'subscription', '', true, true, $subscriptions_reminder['languageid']);
        $username = unhtmlspecialchars($subscriptions_reminder['username']);
        eval(fetch_email_phrases('paidsubscription_reminder', $subscriptions_reminder['languageid']));
        vbmail($subscriptions_reminder['email'], $subject, $message);
    }
    vbmail_end();
    ($hook = vBulletinHook::fetch_hook('cron_script_subscriptions')) ? eval($hook) : false;
}
示例#4
0
         // transaction hasn't been processed before
         /*insert query*/
         $trans = array('transactionid' => $apiobj->transaction_id, 'paymentinfoid' => $apiobj->paymentinfo['paymentinfoid'], 'amount' => $apiobj->paymentinfo['amount'], 'currency' => $apiobj->paymentinfo['currency'], 'state' => $apiobj->type, 'dateline' => TIMENOW, 'paymentapiid' => $api['paymentapiid']);
         if (!$apiobj->type) {
             $trans['request'] = serialize(array('vb_error_code' => $apiobj->error_code, 'GET' => serialize($_GET), 'POST' => serialize($_POST)));
         }
         $db->query_write(fetch_query_sql($trans, 'paymenttransaction'));
         if ($apiobj->type == 1) {
             $subobj->build_user_subscription($apiobj->paymentinfo['subscriptionid'], $apiobj->paymentinfo['subscriptionsubid'], $apiobj->paymentinfo['userid']);
             if ($apiobj->display_feedback) {
                 $vbulletin->url = $vbulletin->options['bburl'] . '/payments.php';
                 eval(print_standard_redirect('payment_complete', true, true));
             }
         } else {
             if ($apiobj->type == 2) {
                 $subobj->delete_user_subscription($apiobj->paymentinfo['subscriptionid'], $apiobj->paymentinfo['userid'], $apiobj->paymentinfo['subscriptionsubid']);
             }
         }
     } else {
         if ($apiobj->type == 2) {
             // transaction is a reversal / refund
             $subobj->delete_user_subscription($apiobj->paymentinfo['subscriptionid'], $apiobj->paymentinfo['userid'], $apiobj->paymentinfo['subscriptionsubid']);
         } else {
             // its most likely a re-post of a payment, if we've already dealt with it serve up a redirect
             if ($apiobj->display_feedback) {
                 $vbulletin->url = $vbulletin->options['bburl'] . '/payments.php';
                 eval(print_standard_redirect('payment_complete', true, true));
             }
         }
     }
 } else {