sector_jobs-1.0.x-dev/sector_jobs.module

sector_jobs.module
<?php

use Drupal\Core\Form\FormStateInterface;
use Drupal\commerce_product\Entity\ProductVariation;

/**
 * @file
 */

/**
 * Implements hook_form_alter().
 */

function sector_jobs_form_node_job_post_a_job_form_alter(&$form, FormStateInterface $form_state){

  $form['actions']['submit']['#submit'][] = 'sector_jobs_add_node_to_cart_submit';
  //dpm($form);
}


function sector_jobs_add_node_to_cart_submit($form, FormStateInterface $formState){

  $variationId = 1;

  $node = $formState->getFormObject()->getEntity();

  $variation = ProductVariation::load($variationId);
    // Assume 1st store as normally we won't have more than one.
  $store = current($variation->getStores());

    // Get or create a cart.
  $cartManager = \Drupal::service('commerce_cart.cart_manager');
  $cartProvider = \Drupal::service('commerce_cart.cart_provider');
  $cart = $cartProvider->getCart('default', $store);
  if (!$cart) {
    $cart = $cartProvider->createCart('default', $store);
  }
  else {
    // Check if the node is already in the user's cart.
    foreach ($cart->getItems() as $line_item) {
      if ($line_item->bundle() == 'job_listing') {
        if ($line_item->field_job_node[0]->target_id == $node->id()) {
          return;
        }
      }
    }
  }
  // Set up line item.
  $quantity = 1;
  $combine = FALSE;
  $line_item = $cartManager
    ->addEntity($cart, $variation, $quantity, $combine);
  $line_item->set('field_job_node', $node);
  $line_item->save();

}

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

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