Hi
I struggled long and hard with the uc_custom_price module, and couldn't get it to do what I wanted. I'm trying to write my own module now to achieve what I want.
I need to alter the price of a product depending on:
- The Attributes of the product being bought;
- The role of the purchaser.
My code is:
<?php
function role_price_cart_item($op, &$item) {
switch ($op) {
case 'load':
global $user;
if ('[Course Modules]' == 'All modules') {
$code = "$item->price = '1553'";
}
if (
'[Course Modules]' == 'Software module') {
$code = "$item->price = '816'";
}
if (
'[Course Modules]' == 'Theory module') {
$code = "$item->price = '628'";
}
if (
'[Course Modules]' == 'Professional Practice module') {
$code = "$item->price = '298'";
}
if (
in_array('member', $user->roles) && '[Course Modules]' == 'All modules') {
$code = "$item->price = '1352'";
}
if (
in_array('member', $user->roles) && '[Course Modules]' == 'Software module') {
$code = "$item->price = '717'";
}
if (
in_array('member', $user->roles) && '[Course Modules]' == 'Theory module') {
$code = "$item->price = '548'";
}
if (
in_array('member', $user->roles) && '[Course Modules]' == 'Professional Practice module') {
$code = "$item->price = '253'";
}
if (
in_array('assessor', $user->roles) && '[Course Modules]' == 'All modules') {
$code = "$item->price = '1091'";
}
if (
in_array('assessor', $user->roles) && '[Course Modules]' == 'Software module') {
$code = "$item->price = '627'";
}
if (
in_array('assessor', $user->roles) && '[Course Modules]' == 'Theory module') {
$code = "$item->price = '480'";
}
if (
in_array('assessor', $user->roles) && '[Course Modules]' == 'Professional Practice module') {
$code = "$item->price = '0'";
}
$product = node_load($item->nid);
$eval_code = token_replace_multiple($code, array('node' => $product, 'uc_cart_item' => $item));
eval($eval_code);
break;
}
}
?>This is having no effect at all on the price. Where is my error? Do I need to define permissions to be able to use this, or since I have none, does this automatically make it available for everyone?
Thanks
Glenn

