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';
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc