You are here

function uc_product_tokens in Ubercart 8.4

Same name and namespace in other branches
  1. 7.3 uc_product/uc_product.tokens.inc \uc_product_tokens()

Implements hook_tokens().

File

uc_product/uc_product.tokens.inc, line 125
Token hooks for the uc_product module.

Code

function uc_product_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
  $replacements = [];
  if ($type == 'node' && !empty($data['node']) && uc_product_is_product($data['node'])) {
    $product =& $data['node'];
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'product:model':
          $replacements[$original] = $product->model->value;
          break;
        case 'product:cost':
        case 'product:cost:formatted':
          $replacements[$original] = uc_currency_format($product->cost->value);
          break;
        case 'product:price':
        case 'product:price:formatted':
          $replacements[$original] = uc_currency_format($product->price->value);
          break;
        case 'product:cost:raw':
          $replacements[$original] = $product->cost->value;
          break;
        case 'product:price:raw':
          $replacements[$original] = $product->price->value;
          break;
        case 'product:weight':
        case 'product:weight:formatted':
          $replacements[$original] = uc_weight_format($product->weight->value, $product->weight->units);
          break;
        case 'product:weight:raw':
          $replacements[$original] = $product->weight->value;
          break;
        case 'product:weight:units':
          $replacements[$original] = $product->weight->units;
          break;
        case 'product:length':
        case 'product:length:formatted':
          $replacements[$original] = uc_length_format($product->dimensions->length, $product->dimensions->units);
          break;
        case 'product:width':
        case 'product:width:formatted':
          $replacements[$original] = uc_length_format($product->dimensions->width, $product->dimensions->units);
          break;
        case 'product:height':
        case 'product:height:formatted':
          $replacements[$original] = uc_length_format($product->dimensions->height, $product->dimensions->units);
          break;
        case 'product:length:raw':
          $replacements[$original] = $product->dimensions->length;
          break;
        case 'product:width:raw':
          $replacements[$original] = $product->dimensions->width;
          break;
        case 'product:height:raw':
          $replacements[$original] = $product->dimensions->height;
          break;
        case 'product:length:units':
        case 'product:width:units':
        case 'product:height:units':
          $replacements[$original] = $product->dimensions->units;
          break;
      }
    }
    return $replacements;
  }
}