quivers-8.x-1.x-dev/quivers.module
quivers.module
<?php
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\field\Entity\FieldConfig;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
/**
* Implements hook_entity_base_field_info().
*/
function quivers_entity_base_field_info(EntityTypeInterface $entity_type) {
$fields = [];
if ($entity_type->id() === 'commerce_product') {
$fields['quivers_self_fulfilled'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Self-fulfilled'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'boolean',
'weight' => 0,
])
->setDisplayConfigurable('view', TRUE);
}
if ($entity_type->id() === 'commerce_product_variation') {
$fields['quivers_pre_order'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Pre-order'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'boolean',
'weight' => 0,
])
->setDisplayConfigurable('view', TRUE);
$fields['quivers_back_order'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Back-order'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'boolean',
'weight' => 0,
])
->setDisplayConfigurable('view', TRUE);
}
if ($entity_type->id() === 'commerce_order_item') {
$fields['quivers_amount_refunded'] = BaseFieldDefinition::create('float')
->setLabel(t('Amount refunded'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'hidden',
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['quivers_sales_tax_refunded'] = BaseFieldDefinition::create('float')
->setLabel(t('Tax amount refunded'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'hidden',
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['quivers_sales_tax'] = BaseFieldDefinition::create('float')
->setLabel(t('Sales tax'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setDisplayOptions('form', [
'type' => 'hidden',
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['quivers_state'] = BaseFieldDefinition::create('list_string')
->setLabel(t('State'))
->setRevisionable(TRUE)
->setTranslatable(FALSE)
->setSetting('allowed_values', [
'cancelled' => t('Cancelled'),
'refunded' => t('Refunded'),
'shipped' => t('Shipped'),
'processed' => t('Processed'),
'processing' => t('Processing'),
])
->setDisplayOptions('form', [
'type' => 'hidden',
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['quivers_tracking_number'] = BaseFieldDefinition::create('tracking_number')
->setLabel(t('Tracking number'))
->setRevisionable(TRUE)
->setTranslatable(TRUE)
->setDisplayOptions('form', [
'type' => 'hidden',
'weight' => 0,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
}
return $fields;
}
function Quivers_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id)
{
$form['upc_hidden'] = array(
'#attributes' => array('class' => array('visualy-hidden')),
);
if(isset($form['upc']['widget'][0]['value']['#default_value'])){
$form['upc_hidden']['widget'][0]['value']['#default_value'] = $form['upc'];
}
if ($form_id === 'commerce_checkout_flow_multistep_default' && $form['#step_id'] == 'review'){
try{
$order_id = $form["sidebar"]["coupon_redemption"]["form"]["#configuration"]["order_id"];
$address = $form["stripe_review"]["#attached"]["drupalSettings"]["commerceStripe"]["shipping"];
$order = \Drupal\commerce_order\Entity\Order::load($order_id);
$price = print_r($order->getTotalPrice(), true);
$order_shipment_amt = 0;
foreach ($order->get('shipments')->referencedEntities() as $shipment) {
$amt = $shipment->getAmount();
if ($amt !== NULL){
$order_shipment_amt = $order_shipment_amt + $amt->getNumber();
}
}
$data = [
"shipping_address" => $address,
"Customer_mail" => $order->getEmail(),
"Total_price" => $price,
"Order_Shipment_amt" => $order_shipment_amt
];
$client = \Drupal::httpClient();
$config_factory = \Drupal::ConfigFactory();
$quiversettings = $config_factory->get('quivers.settings');
$quiversettings = $quiversettings->get();
$logdata = [
"api_key" => $quiversettings['quivers_api_key'],
"uuid" => $quiversettings['middleware_profile_id'],
"type" => "FINAL ORDER DETAILS",
"log_data" => $data
];
if ($quiversettings['api_mode'] == "production"){
$response = $client->post('https://middleware.quivers.com/profile/logs/',
['json' => $logdata]
);
}
else{
$response = $client->post('https://middleware.quiversdemo.com/profile/logs/',
['json' => $logdata]
);
}
}
catch(Exception $e) {
$error = ["error" => "Erorr Alert - Something Missing"];
if ($quiversettings['api_mode'] == "production"){
$response = $client->post('https://middleware.quivers.com/profile/logs/',
['json' => $error]
);
}
else{
$response = $client->post('https://middleware.quiversdemo.com/profile/logs/',
['json' => $error]
);
}
}
}
return $form;
}
/**
* Implements hook_page_attachments().
* Attach the custom JavaScript library to the checkout review page.
*/
function quivers_page_attachments(array &$attachments) {
$request_uri = $_SERVER['REQUEST_URI'];
if (strpos($request_uri, '/checkout/') !==false && strpos($request_uri, '/review')) {
$attachments['#attached']['library'][] = 'quivers/quivers_custom_js';
}
}