Exemplo n.º 1
0
$t->assign('products', $pp);
$payments =& $db->get_user_payments(intval($_amember_id), 1);
usort($payments, 'rcmp_begin_date');
$now = date('Y-m-d');
$member_active = $member_paid = 0;
foreach ($payments as $k => $v) {
    $payments[$k]['is_active'] = $v['expire_date'] >= $now && $v['begin_date'] <= $now ? 1 : 0;
    if ($payments[$k]['is_active']) {
        $member_active++;
    }
    if ($v['completed']) {
        $member_paid++;
    }
    // try to display "Cancel" Link
    if ($payments[$k]['expire_date'] >= date('Y-m-d')) {
        $paysys = get_paysystem($v['paysys_id']);
        $product = $db->get_product($v['product_id']);
        if ($paysys['recurring'] && ($pay_plugin =& instantiate_plugin('payment', $v['paysys_id'])) && $product['is_recurring'] && method_exists($pay_plugin, 'get_cancel_link')) {
            $payments[$k]['cancel_url'] = $pay_plugin->get_cancel_link($v['payment_id']);
        }
    }
}
$t->assign('payments', $payments);
///////////////////////////////////////////////////
$member_products = $_SESSION['_amember_products'];
foreach ((array) $member_products as $k => $pr) {
    $member_products[$k]['url'] = add_password_to_url($pr['url']);
    foreach ((array) $pr['add_urls'] as $u => $kk) {
        $uu = add_password_to_url($u, $member_login_pw);
        unset($member_products[$k]['add_urls'][$u]);
        $member_products[$k]['add_urls'][$uu] = $kk;
Exemplo n.º 2
0
 /**
  * Function sets price fields according to paysystem type
  * @param string paysys_id
  */
 function setPriceFieldsByPaysys($paysys_id)
 {
     $built_in_trials = false;
     if ($paysys_id && ($paysys = get_paysystem($paysys_id))) {
         $built_in_trials = $paysys['built_in_trials'];
     }
     if ($built_in_trials) {
         $this->setPriceFields('price');
     } else {
         $this->setPriceFields(array('trial1_price', 'price'));
     }
 }
Exemplo n.º 3
0
function display_payments_form()
{
    global $member_id;
    global $db, $t, $config;
    if ($_GET['cancel_recurring'] > 0) {
        $p = $db->get_payment($_GET['cancel_recurring']);
        if (!$p) {
            die('Cannot find payment to cancel recurring. internal error');
        }
        $p['data']['CANCELLED'] = 1;
        $p['data']['CANCELLED_AT'] = strftime($config['time_format'], time());
        $db->update_payment($p['payment_id'], $p);
        admin_log("Subscription cancelled", 'payments', $p['payment_id']);
    }
    if ($_GET['restart_recurring'] > 0) {
        $p = $db->get_payment($_GET['restart_recurring']);
        if (!$p) {
            die('Cannot find payment to restart recurring. internal error');
        }
        $p['data']['CANCELLED'] = 0;
        $p['data']['CANCELLED_AT'] = "";
        $db->update_payment($p['payment_id'], $p);
        admin_log("Subscription restarted", 'payments', $p['payment_id']);
    }
    $products =& $db->get_products_list();
    $pp = array();
    foreach ($products as $p) {
        $pp[$p['product_id']] = $p['title'];
    }
    $t->assign('products', $pp);
    $t->assign('member_id', $member_id);
    $member = $db->get_user($member_id);
    $payments =& $db->get_user_payments(intval($member_id));
    foreach ($payments as $k => $p) {
        $payments[$k]['items_count'] = count($p['data'][0]['BASKET_PRODUCTS']);
        /** Following is a dirty hack to show cancel link in admin cp */
        if ($payments[$k]['expire_date'] >= date('Y-m-d')) {
            $paysys = get_paysystem($p['paysys_id']);
            $product = $db->get_product($p['product_id']);
            if ($paysys['recurring'] && ($pay_plugin =& instantiate_plugin('payment', $p['paysys_id'])) && $product['is_recurring'] && method_exists($pay_plugin, 'get_cancel_link')) {
                $l = $pay_plugin->get_cancel_link($p['payment_id']);
                if (preg_match('|cc.php\\?action=cancel_recurring|', $l, $regs)) {
                    $u = $_SERVER['PHP_SELF'] . "?member_id={$member_id}&action=payments&" . 'cancel_recurring=' . $p['payment_id'];
                    $payments[$k]['cancel_url'] = $u;
                }
                if ($member['data']['cc'] && $config['enable_resubscribe']) {
                    $r = $_SERVER['PHP_SELF'] . "?member_id={$member_id}&action=payments&" . 'restart_recurring=' . $p['payment_id'];
                    $payments[$k]['restart_url'] = $r;
                }
            }
        }
    }
    $t->assign('payments', $payments);
    $paysystems = get_paysystems_list();
    $pp = array();
    foreach ($paysystems as $p) {
        $pp[$p['paysys_id']] = $p['title'];
    }
    $t->assign('paysystems', $pp);
    global $payment_additional_fields;
    $t->assign("u", $db->get_user($member_id));
    $t->assign('payment_additional_fields', $payment_additional_fields);
    $t->display('admin/user_payments.html');
}
Exemplo n.º 4
0
function mail_expire_members()
{
    // send mail to members having
    // expiration_date = today() + $config['expire_mail_days']
    global $config, $db;
    $t =& new_smarty();
    $pl = array();
    $et =& new aMemberEmailTemplate();
    $et->name = "mail_expire";
    $global_days = $et->find_days();
    foreach ($db->get_products_list() as $k => $pr) {
        if ($pr['dont_mail_expire'] != 2 && !$config['mail_expire']) {
            continue;
        }
        if ($pr['dont_mail_expire'] == 1) {
            continue;
        }
        $et =& new aMemberEmailTemplate();
        $et->name = "mail_expire";
        $et->product_id = $pr['product_id'];
        $days = $et->find_days();
        if ($pr['dont_mail_expire'] == 2 && !$config['mail_expire'] && !$days) {
            continue;
        }
        $pr['mail_expire_days'] = $days ? $days : $global_days;
        $pr['mail_expire_days_global'] = $days ? false : true;
        if (!$pr['mail_expire_days']) {
            continue;
        }
        $pl[$k] = $pr;
    }
    // iterate on products
    $msent = array();
    foreach ($pl as $pr) {
        //iterate on expiration days
        foreach ($pr['mail_expire_days'] as $days) {
            $dat = date('Y-m-d', time() + 3600 * 24 * $days);
            $plist = $db->get_expired_payments($dat, $dat, null, $pr['dont_mail_expire'] ? true : false, $pr['product_id']);
            //print_rr($plist, "$dat,$pr[product_id]");
            foreach ($plist as $p) {
                // go through expired payments and send mail
                if ($msent[$p['member_id']]) {
                    continue;
                }
                //dont send second mail !
                $paysys = get_paysystem($p['paysys_id']);
                if ($paysys['recurring'] && $pr['is_recurring']) {
                    continue;
                }
                // don't send if auto-recurring
                $u = $db->get_user($p['member_id']);
                $product = get_product($p['product_id']);
                ///////////////////////////////////
                $t->assign('login', $u['login']);
                $t->assign('pass', $u['pass']);
                $t->assign('name_f', $u['name_f']);
                $t->assign('name_l', $u['name_l']);
                ///////////////////////////////////
                $t->assign('user', $u);
                $t->assign('payment', $p);
                $t->assign('product', $product->config);
                ///////////////////////////////////
                $et =& new aMemberEmailTemplate();
                $et->name = "mail_expire";
                $et->day = $days;
                if (!$pr['mail_expire_days_global']) {
                    $et->product_id = $pr['product_id'];
                }
                //print_rr($et, $u['email']);
                mail_template_user($t, $et, $u, false);
                $msent[$p['member_id']]++;
            }
        }
    }
}
Exemplo n.º 5
0
function plugin_do_payment($paysys_id, $payment_id, $member_id, $product_id, $price, $begin_date, $expire_date, &$vars)
{
    $pay_plugin =& instantiate_plugin('payment', $paysys_id);
    $ps = get_paysystem($paysys_id);
    global $db;
    if ($ps['fixed_price'] && ($product = $db->get_product($product_id)) && $product['price'] != $price && $product['trial1_price'] != $price) {
        return "Sorry, it is impossible to use this payment method for \n        this order. Please select another payment method";
    }
    return $pay_plugin->do_payment($payment_id, $member_id, $product_id, $price, $begin_date, $expire_date, $vars);
}