You are here

function _webform_analysis_productfield in Commerce Webform 8

Same name and namespace in other branches
  1. 7.2 productfield.inc \_webform_analysis_productfield()
  2. 7 productfield.inc \_webform_analysis_productfield()

Implements _webform_analysis_component().

File

./productfield.inc, line 493

Code

function _webform_analysis_productfield($component, $sids = array(), $single = FALSE) {
  $query = db_select('webform_submitted_data', 'wsd', array(
    'fetch' => PDO::FETCH_ASSOC,
  ))
    ->fields('wsd', array(
    'data',
  ))
    ->condition('nid', $component['nid'])
    ->condition('cid', $component['cid'])
    ->condition('data', '', '<>')
    ->groupBy('data');
  if (count($sids)) {
    $query
      ->condition('sid', $sids, 'IN');
  }
  $results = $query
    ->execute();
  $rows = array();
  foreach ($results as $result) {
    $submission = json_decode($result['data']);
    if (isset($component['extra']['items'][$submission->product_id])) {
      $display_option = _webform_filter_xss($component['extra']['items'][$submission->product_id]['title']);

      // Update the paid count.
      $paid_display_option = !empty($submission->paid) ? 'Paid' : 'Unpaid';
      if (isset($rows[$submission->product_id . '_' . $paid_display_option])) {
        $rows[$submission->product_id . '_' . $paid_display_option]++;
      }
      else {
        $rows[$submission->product_id . '_' . $paid_display_option] = array(
          $display_option . ' (' . _webform_filter_xss(t($paid_display_option)) . ')',
          1,
        );
      }
    }
  }
  return $rows;
}