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']; } }
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)) {
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; }