function uc_payment_default_rules_configuration in Ubercart 8.4
Same name and namespace in other branches
- 7.3 payment/uc_payment/uc_payment.rules_defaults.inc \uc_payment_default_rules_configuration()
Implements hook_default_rules_configuration().
File
- payment/
uc_payment/ uc_payment.rules_defaults.inc, line 11 - Default rules configurations.
Code
function uc_payment_default_rules_configuration() {
$configs = [];
// Set the order status to "Payment Received" when a payment is received
// and the balance is less than or equal to 0.
$rule = rules_reaction_rule();
$rule->label = t('Update order status on full payment');
$rule->active = TRUE;
$rule
->event('uc_payment_entered')
->condition('uc_payment_condition_order_balance', [
'order:select' => 'order',
'balance_comparison' => 'less_equal',
])
->condition(rules_or()
->condition('uc_order_condition_order_state', [
'order:select' => 'order',
'order_state' => 'in_checkout',
])
->condition('uc_order_condition_order_state', [
'order:select' => 'order',
'order_state' => 'post_checkout',
]))
->action('uc_order_update_status', [
'order:select' => 'order',
'order_status' => 'payment_received',
]);
$configs['uc_payment_received'] = $rule;
// Set the order status to "Completed" when checkout is complete, none
// of the products are shippable, and the balance is less than or equal to 0.
$rule = rules_reaction_rule();
$rule->label = t('Complete non-shippable order after payment received');
$rule->active = TRUE;
$rule
->event('uc_order_status_update')
->condition('data_is', [
'data:select' => 'updated_order:order-status',
'value' => 'payment_received',
])
->condition(rules_condition('uc_order_condition_is_shippable', [
'order:select' => 'updated_order',
])
->negate())
->action('uc_order_update_status', [
'order:select' => 'order',
'order_status' => 'completed',
]);
$configs['uc_checkout_complete_paid'] = $rule;
foreach (uc_payment_method_list() as $id => $method) {
$set = rules_and([
'order' => [
'type' => 'uc_order',
'label' => t('Order'),
],
]);
$set->label = t('@method conditions', [
'@method' => $method['name'],
]);
$configs['uc_payment_method_' . $id] = $set;
}
return $configs;
}