/** * Validates input date. */ function hook_date_restrictions_element_validate($date, $element, $form_state, $form) { $min = new DateObject(); interval_apply_interval($min, $element['#restrictions']['date_min']); if ($date < $min) { return form_error($element, t('Invalid date.')); } }
/** * Implements hook_commerce_node_checkout_line_item_alter * * Allows modules to interact with the line item to be added to the cart * before it is saved. Modules can't use hook_commerce_line_item_alter or * other entity alter functions because they don't have the $node object or * the associated (selected) product in scope which this hook does. * * @param object $line_item * The commerce line item about to be added to the cart * @param object $product * The commerce product option selection by the node author * @param object $node * The node object created by the author */ function hook_commerce_node_checkout_line_item_alter(&$line_item, $product, $node) { // Load the interval field from the product. $interval = field_get_items('commerce_product', $product, 'commerce_node_checkout_expire'); if ($interval && !empty($interval['0'])) { // We have an expiry field - apply it. $due_date_obj = new DateObject('now'); if (interval_apply_interval($due_date_obj, $interval)) { // Update the expiry field on the line item. $line_item->commerce_node_checkout_expires[LANGUAGE_NONE][0]['value'] = $due_date_obj->format('U'); } } }