function uc_recurring_fee_save in Ubercart 5
Saves a recurring fee either for a product or for a user.
4 calls to uc_recurring_fee_save()
- uc_authorizenet_arb_create in payment/
uc_authorizenet/ uc_authorizenet.module - Sends an ARB Create request via the XML API.
- uc_authorizenet_silent_post in payment/
uc_authorizenet/ uc_authorizenet.module - uc_recurring_byref_save in payment/
uc_recurring/ uc_recurring.module - Saves a reference transaction fee to the database.
- uc_recurring_feature_form_submit in payment/
uc_recurring/ uc_recurring.module
File
- payment/
uc_recurring/ uc_recurring.module, line 899 - Allows you to add a recurring fee to a product/SKU to handle subscription type services.
Code
function uc_recurring_fee_save($type, $data) {
switch ($type) {
case 'product':
// First attempt to update an existing row.
db_query("UPDATE {uc_recurring_products} SET model = '%s', fee_amount = %f, initial_charge = '%s', regular_interval = '%s', number_intervals = %d WHERE pfid = %d", $data['model'], $data['fee_amount'], $data['initial_charge'], $data['regular_interval'], $data['number_intervals'], $data['pfid']);
// Otherwise insert this feature as a new row.
if (db_affected_rows() == 0) {
db_query("INSERT INTO {uc_recurring_products} (pfid, model, fee_amount, initial_charge, regular_interval, number_intervals) VALUES (%d, '%s', %f, '%s', '%s', %d)", $data['pfid'], $data['model'], $data['fee_amount'], $data['initial_charge'], $data['regular_interval'], $data['number_intervals']);
}
break;
case 'user':
// First attempt to update an existing row.
db_query("UPDATE {uc_recurring_users} SET uid = %d, fee_handler = '%s', next_charge = %d, fee_amount = %f, regular_interval = '%s', remaining_intervals = %d, charged_intervals = %d, order_id = %d, data = '%s' WHERE rfid = %d", $data['uid'], $data['fee_handler'], $data['next_charge'], $data['fee_amount'], $data['regular_interval'], $data['remaining_intervals'], $data['charged_intervals'], $data['order_id'], $data['data'], $data['rfid']);
// Otherwise insert this feature as a new row.
if (db_affected_rows() == 0) {
db_query("INSERT INTO {uc_recurring_users} (rfid, uid, fee_handler, next_charge, fee_amount, regular_interval, remaining_intervals, charged_intervals, order_id, data, created) VALUES (%d, %d, '%s', %d, %f, '%s', %d, %d, %d, '%s', %d)", $data['rfid'], $data['uid'], $data['fee_handler'], $data['next_charge'], $data['fee_amount'], $data['regular_interval'], $data['remaining_intervals'], $data['charged_intervals'], $data['order_id'], $data['data'], time());
}
break;
}
}