Index: signup_pay.module =================================================================== --- signup_pay.module (revision 116) +++ signup_pay.module (working copy) @@ -625,8 +625,16 @@ if ($node->signup_pay_enabled) { $default_rid = signup_pay_find_user_role($user); $pay_roles = signup_pay_get_node_pay_roles($form['nid']['#value']); + $amount = $pay_roles[$default_rid]['amount']; + + // Use module_invoke_all, to allow other modules to adjust the amount. + $adjusted_amounts = module_invoke_all('signup_pay_adjust', $node, $user, $amount); + if ($adjusted_amounts) { + $amount = array_pop($adjusted_amounts); + } + $form['collapse']['signup_user_form']['payment'] = array( - '#value' => t('
The price you pay: %amount
', array('%amount' => _signup_pay_format_amount($pay_roles[$default_rid]['amount'],$pay_roles[$default_rid]['currency']))), + '#value' => t('
The price you pay: %amount
', array('%amount' => _signup_pay_format_amount($amount,$pay_roles[$default_rid]['currency']))), ); $form['collapse']['signup_user_form']['method'] = array( '#type' => 'radios', @@ -811,6 +819,12 @@ $amount = $pay_roles[$signup_rid]['amount'] ? $pay_roles[$signup_rid]['amount'] : variable_get(SIGNUP_PAY_AMOUNT, SIGNUP_PAY_DEFAULT_AMOUNT); $currency = $pay_roles[$signup_rid]['currency'] ? $pay_roles[$signup_rid]['currency'] : variable_get(SIGNUP_PAY_CURRENCY, SIGNUP_PAY_DEFAULT_CURRENCY); + // Use module_invoke_all, to allow other modules to adjust the amount. + $adjusted_amounts = module_invoke_all('signup_pay_adjust', $signup_node, $signup_user, $amount); + if ($adjusted_amounts) { + $amount = array_pop($adjusted_amounts); + } + $url = simple_paypal_get_url(); $form['#action'] = $url;