関数
CartPages::getComboSetCart( array $cart_row )
パラメータ パラメータ
- $cart_row
(配列) (必須)
ファイル: src/Pages/CartPages.php
public static function getComboSetCart($cart_row) { global $usces, $wpdb; $cserial = null; $isordercart = false; $grouplabelmap = []; $itemlabelmap = []; $ordercart = []; if (!empty($cart_row['serial'])) { $cserial = $cart_row['serial']; } elseif (!empty($cart_row['cart_serial'])) { $cserial = $cart_row['cart_serial']; $isordercart = true; } if ($cserial === null) { return null; } $sels = unserialize($cserial); if (empty($sels['comboSetId']) || !isset($sels['comboSetItems'])) { return null; } if ($isordercart === true) { $csgioct = Schema::getComboSetGroupItemsOrderCartTable(); $results = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$csgioct} WHERE combo_set_cart_id = %d ORDER BY cart_id ASC", $cart_row['cart_id'] ), ARRAY_A ); if ($results !== null) { $index = 0; foreach ($sels['comboSetItems'] as $gitem) { if (empty($results[$index]['cart_serial'])) { continue; } $gocserial = $results[$index]['cart_serial']; $gisels = unserialize($gocserial); $grouplabelmap[$gisels['groupId']] = !empty($gisels['groupLabel']) ? $gisels['groupLabel'] : ''; $itemlabelmap[$gisels['itemId']] = !empty($gisels['itemLabel']) ? $gisels['itemLabel'] : ''; $ordercart[$gisels['itemId']] = $results[$index]; $index++; } } } else { $cscart = !empty($_SESSION['usces_cart'][$cserial]) ? $_SESSION['usces_cart'][$cserial] : []; $grouplabelmap = !empty($cscart['grouplabelmap']) ? $cscart['grouplabelmap'] : []; $itemlabelmap = !empty($cscart['itemlabelmap']) ? $cscart['itemlabelmap'] : []; $ordercart = []; } $rows = []; foreach ($sels['comboSetItems'] as $serial => $gitem) { $gisels = unserialize($serial); $gicsels = (new \usces_cart())->key_unserialize($serial); $rows[$gisels['groupId']]['groupLabel'] = ''; $glabel = ''; if (!empty($grouplabelmap[$gisels['groupId']])) { $glabel = $grouplabelmap[$gisels['groupId']]; } $itemLabel = ''; if (!empty($itemlabelmap[$gisels['itemId']])) { $itemLabel = $itemlabelmap[$gisels['itemId']]; } else { $itemLabel = wcexics_get_group_item_default_label( $usces->getItemName($gicsels['post_id']), $usces->getItemSkuDisp($gicsels['post_id'], urldecode($gicsels['sku'])), $gitem['quant'], $gitem['price'] ); } $opts = !empty($gicsels['options']) ? $gicsels['options'] : []; $giordercart = isset($ordercart[$gisels['itemId']]) ? $ordercart[$gisels['itemId']] : null; if (is_array($giordercart) && isset($giordercart['cart_id'])) { $options = wcexics_api_get_group_item_ordercart_meta('option', $giordercart['cart_id']); $options = is_array($options) ? $options : []; foreach ($options as $opt) { $optv = maybe_unserialize($opt['meta_value']); if (is_array($optv)) { $optva = []; foreach ($optv as $optvav) { $optva[urlencode((string)$optvav)] = urlencode((string)$optvav); } $optv = $optva; } else { $optv = urlencode((string)$optv); } $opts[urlencode($opt['meta_key'])] = $optv; } } $rows[$gisels['groupId']]['groupLabel'] = $glabel; $rows[$gisels['groupId']]['groupItems'][] = [ 'name' => $itemLabel, 'itemId' => $gisels['itemId'], 'ordercart' => $giordercart, 'options' => $opts, ]; } return [ 'cserial' => $cserial, 'grouplabelmap' => $grouplabelmap, 'groupItems' => $sels['comboSetItems'], 'cartRows' => $rows, ]; }