You are here

function basic_cart_order_register_order in Basic cart 7.2

Registers a new basic cart order to the database.

Parameters

string $name: The customer's name.

string $email: The customer's email address.

array $order_details: The rest of the customer's data (phone, address, message). Non mandatory fields.

1 call to basic_cart_order_register_order()
basic_cart_checkout_form_submit in ./basic_cart.cart.inc
Checkout form submit proccess. Register order and send emails.

File

basic_cart_order/basic_cart_order.module, line 142

Code

function basic_cart_order_register_order($name, $email, $order_details = array()) {
  $cart = basic_cart_get_cart();
  if (!is_array($cart)) {
    return NULL;
  }

  // Registering the new order to the database.
  $node = new stdClass();
  $node->type = 'order';
  node_object_prepare($node);

  // Title, mandatory field.
  $node->title = $name;
  $node->language = LANGUAGE_NONE;

  // Body.
  if (isset($order_details['message'])) {
    $node->body[$node->language][0]['value'] = $order_details['message'];
  }
  else {
    $node->body[$node->language][0]['value'] = '';
  }

  // Email, mandatory field.
  $node->field_email[$node->language][0]['value'] = $email;

  // Phone.
  if (isset($order_details['phone'])) {
    $node->field_phone[$node->language][0]['value'] = $order_details['phone'];
  }

  // Phone.
  if (isset($order_details['city'])) {
    $node->field_city[$node->language][0]['value'] = $order_details['city'];
  }

  // Phone.
  if (isset($order_details['zipcode'])) {
    $node->field_zipcode[$node->language][0]['value'] = $order_details['zipcode'];
  }

  // Address.
  if (isset($order_details['address'])) {
    $node->field_address[$node->language][0]['value'] = $order_details['address'];
  }

  // Total price.
  if (isset($order_details['total_price'])) {
    $node->field_total_price[$node->language][0]['value'] = $order_details['total_price'];
  }
  else {
    $price = basic_cart_get_total_price();
    $node->field_total_price[$node->language][0]['value'] = $price->total;
  }

  // VAT.
  $vat_is_enabled = (int) variable_get('basic_cart_vat_state');
  if (!empty($vat_is_enabled) && $vat_is_enabled) {
    $node->vat[$node->language][0]['value'] = $price->vat;
  }

  // Registering order.
  node_save($node);

  // Now we have a node ID, we need to save the associated products.
  $oid = $node->nid;
  foreach ($cart as $nid => $n) {
    $record = array(
      'oid' => $oid,
      'nid' => $n->nid,
      'quantity' => $n->basic_cart_quantity,
    );
    drupal_write_record('basic_cart_order_node', $record);
  }
  return $node;
}