Пример #1
0
function fn_recurring_billing_get_cart_product_data($product_id, &$p_data, &$product)
{
    if ((AREA != 'A' || !empty($product['extra']['recurring_force_calculate'])) && !empty($product['extra']['recurring_plan_id'])) {
        $plan_data = fn_get_recurring_plan_data($product['extra']['recurring_plan_id']);
        if (empty($plan_data['start_duration'])) {
            $price_cond = $plan_data['price'];
        } else {
            if (!empty($product['extra']['recurring_subscription_id'])) {
                $subscription = fn_get_recurring_subscription_info($product['extra']['recurring_subscription_id'], false);
                $start_price_time = fn_get_period_date($subscription['timestamp'], $plan_data['start_duration'], $plan_data['start_duration_type'] == 'D' ? 'day' : 'month');
                $price_cond = $start_price_time < TIME ? $plan_data['price'] : $plan_data['start_price'];
            } else {
                $price_cond = $plan_data['start_price'];
            }
        }
        $p_data['base_price'] = $p_data['price'] = $p_data['original_price'] = $product['display_price'] = $product['display_subtotal'] = $product['subtotal'] = fn_calculate_recurring_price($p_data['price'], $price_cond);
        $p_data['extra']['recurring_price_calculated'] = true;
        $p_data['extra']['recurring_plan_id'] = $product['extra']['recurring_plan_id'];
        $p_data['extra']['recurring_plan'] = $product['extra']['recurring_plan'];
        $p_data['extra']['recurring_duration'] = $product['extra']['recurring_duration'];
    }
}
Пример #2
0
                fn_set_notification('E', fn_get_lang_var('error'), 'rb_duration_did_not_null');
            }
        }
        $suffix = empty($_REQUEST['subscription_id']) ? '.search' : '.view&subscription_id=' . $_REQUEST['subscription_id'];
    }
    if ($mode == 'unsubscribe') {
        if (!empty($_REQUEST['subscription_id'])) {
            fn_change_recurring_subscription_status($_REQUEST['subscription_id'], 'U');
        }
        $suffix = '.search';
    }
    return array(CONTROLLER_STATUS_OK, "subscriptions{$suffix}");
}
// ---------------------- GET routines ---------------------------------------
if ($mode == 'view') {
    $subscription = fn_get_recurring_subscription_info($_REQUEST['subscription_id'], true, true);
    if (empty($subscription)) {
        return array(CONTROLLER_STATUS_NO_PAGE);
    }
    fn_add_breadcrumb(fn_get_lang_var('rb_subscriptions'), "subscriptions.search");
    fn_add_breadcrumb(fn_get_lang_var('rb_subscription') . ' #' . $subscription['subscription_id']);
    Registry::set('navigation.tabs', array('general' => array('title' => fn_get_lang_var('general'), 'js' => true), 'linked_products' => array('title' => fn_get_lang_var('products'), 'js' => true), 'paids' => array('title' => fn_get_lang_var('orders'), 'js' => true)));
    if ($subscription['order_id'] == $subscription['order_ids']) {
        $last_status = $subscription['order_info']['status'];
        $pay_order = $subscription['order_id'];
    } else {
        $pay_order = substr($subscription['order_ids'], strrpos($subscription['order_ids'], ',') + 1);
        $last_order = fn_get_order_short_info($pay_order);
        $last_status = $last_order['status'];
    }
    if (!fn_subscription_is_paid($last_status)) {
Пример #3
0
function fn_recurring_subscription_notification($subscription_id, $notification_type)
{
    $addon_settings = Registry::get('addons.recurring_billing');
    $data = fn_get_recurring_subscription_info($subscription_id, false);
    $evt_data = array('subscription_id' => $subscription_id, 'timestamp' => TIME);
    if ($notification_type == 'F') {
        Registry::get('view_mail')->assign('header', $addon_settings['rb_future_pay_email_header']);
        Registry::get('view_mail')->assign('subj', $addon_settings['rb_future_pay_email_subject']);
        $subj = 'addons/recurring_billing/future_notification_subj.tpl';
        $body = 'addons/recurring_billing/future_notification.tpl';
        $data['next_timestamp'] = db_get_field("SELECT timestamp FROM ?:recurring_events WHERE subscription_id = ?i AND event_type = 'P' AND timestamp > ?i GROUP BY subscription_id", $subscription_id, TIME);
    } elseif ($notification_type == 'M') {
        Registry::get('view_mail')->assign('header', $addon_settings['rb_manual_pay_email_header']);
        Registry::get('view_mail')->assign('subj', $addon_settings['rb_manual_pay_email_subject']);
        $subj = 'addons/recurring_billing/manual_notification_subj.tpl';
        $body = 'addons/recurring_billing/manual_notification.tpl';
    } else {
        return false;
    }
    $evt_data['event_type'] = $notification_type;
    db_query("INSERT INTO ?:recurring_events ?e", $evt_data);
    Registry::get('view_mail')->assign('subscription_info', $data);
    fn_send_mail($data['email'], Registry::get('settings.Company.company_orders_department'), $subj, $body);
    return true;
}