auto_login_and_move_subscriptions($u['member_id']); header("Location: " . $config['root_url'] . "/thanks.php"); exit; } // verificate CAPTCHA if (($vars['do_affiliate'] || $vars['do_agreement']) && $config['use_captcha_signup'] && !$_SESSION['amember_captcha_verified']) { if ($vars['captcha'] != '' && strtolower($vars['captcha']) == $_SESSION['amember_captcha']) { $_SESSION['amember_captcha_verified'] = true; } else { $error[] = _SIGNUP_CAPTCHA_ERROR; } } if ($vars['do_agreement']) { if (!$vars['i_agree']) { $error[] = _SIGNUP_USER_AGREEMENT; display_agreement($vars['data']); exit; } $vars = unserialize($vars['data']); $vars['i_agree']++; foreach ($vars as $k => $v) { $t->_smarty_vars['request'][$k] = $v; } } if (!$config['login_dont_lowercase']) { $vars['login'] = strtolower($vars['login']); } if ($config['generate_login']) { $vars['login'] = generate_login($vars); } if ($config['generate_pass']) {
function do_renew() { global $_SESSION; global $_amember_id; global $config, $db, $t, $vars, $plugins, $error; $member_id = intval($_amember_id); $error = array_merge((array) $error, (array) plugin_validate_member_form($vars)); if (count($error)) { $t->assign('error', $error); return; } $vars['product_id'] = is_array($vars['product_id']) ? array_filter(array_map('intval', $vars['product_id'])) : intval($vars['product_id']); if (!$vars['product_id']) { $t->assign('error', _MEMBER_SELECT_PRODUCT); return; } if ($vars['coupon'] != '' && $config['use_coupons']) { $coupon = $db->coupon_get($vars['coupon'], $_SESSION[_amember_id]); if (is_string($coupon)) { $t->assign('error', $coupon); return; } } $pc =& new PriceCalculator(); $pc->addProducts($vars['product_id']); if ($config['use_coupons'] && $vars['coupon'] != '') { $coupon = $db->coupon_get($vars['coupon'], $_SESSION[_amember_id]); if ($coupon['coupon_id']) { $pc->setCouponDiscount($coupon['discount'], split(',', trim($coupon['product_id']))); } } $pc->setPriceFieldsByPaysys($vars['paysys_id']); $pc->setTax(get_member_tax($member_id)); $terms =& $pc->calculate(); $price = $terms->total; if ($price == 0 && !product_get_trial($vars['product_id']) && ($terms->discount > 0 && !$coupon['is_recurring'] || !$terms->discount) && in_array('free', $plugins['payment'])) { $vars['paysys_id'] = 'free'; } if ($config['product_paysystem']) { $pr = get_product(is_array($vars['product_id']) ? $vars['product_id'][0] : $vars['product_id']); $vars['paysys_id'] = $pr->config['paysys_id']; } if (!$vars['paysys_id']) { $t->assign('error', _MEMBER_SELECT_PAYMENT); return; } //check for agreement $display_agreement = 0; foreach ((array) $vars['product_id'] as $pid) { $product = $db->get_product($pid); if ($product['need_agreement']) { $display_agreement++; } } $member = $db->get_user($member_id); if ($display_agreement && !$member['data']['i_agree'] && !$vars['i_agree']) { display_agreement(serialize($vars)); // defined in the product.inc.php exit; } if ($vars['i_agree'] && !$member['data']['i_agree']) { $member['data']['i_agree']++; $db->update_user($member_id, $member); } /// do { // for easy exit using break; $paysys_id = $vars['paysys_id']; $product_id = $vars['product_id']; if (!is_array($product_id)) { $product_id = array($product_id); } foreach ((array) $vars['product_id'] as $pid) { $error = check_product_scope($pid, $_amember_id); if ($error) { break; } } if ($error = check_product_requirements($product_id, get_product_requirements_for_member($_amember_id))) { break; } // if ($terms->discount > 0) $vars['COUPON_CODE'] = $vars['coupon']; global $payment_additional_fields; $additional_values = array(); foreach ($payment_additional_fields as $f) { $fname = $f['name']; if (isset($vars[$fname])) { $additional_values[$fname] = $vars[$fname]; } } $additional_values['COUPON_DISCOUNT'] = $terms->discount; $additional_values['TAX_AMOUNT'] = $terms->tax; $taxes = $prices = array(); foreach ($terms->lines as $pid => $line) { $prices[$pid] = $line->total; if ($line->tax) { $taxes[$pid] = $line->tax; } } $additional_values['TAXES'] = $taxes; $product =& get_product($product_id[0]); $begin_date = $product->get_start($member_id); $expire_date = $product->get_expire($begin_date, null, $terms); //yyyy-mm-dd // add payment $payment_id = $db->add_waiting_payments($member_id, $product_id, $paysys_id, $price, $prices, $begin_date, $expire_date, $vars, $additional_values); $error = plugin_do_payment($paysys_id, $payment_id, $member_id, is_array($product_id) ? $product_id[0] : $product_id, $price, $begin_date, $expire_date, $vars); if ($error) { $db->delete_payment($payment_id); break; } exit; } while (0); //if we here, error was occured $t->assign('error', $error); return; }
if (!$price && !product_get_trial($vars['product_id']) && ($terms->discount > 0 && !$coupon['is_recurring'] || !$terms->discount) && in_array('free', $plugins['payment'])) { $vars['paysys_id'] = 'free'; } } } if ($vars['do_payment'] && check_payment_form()) { //check for agreement $display_agreement = 0; foreach ((array) $vars['product_id'] as $pid) { $product = $db->get_product($pid); if ($product['need_agreement']) { $display_agreement++; } } if ($display_agreement && !$vars['i_agree']) { display_agreement(serialize($vars)); // defined in the product.inc.php exit; } // do payment ! $product_id = $vars['product_id']; if (!is_array($product_id)) { $product_id = array($product_id); } $login = $vars['login']; $paysys_id = $vars['paysys_id']; do { // to easy exit using break() foreach ((array) $vars['product_id'] as $pid) { $product = $db->get_product($pid); if (!in_array($product['scope'], $signup_scope_allowed)) {