ファンクション
wcexics_get_singleselect_items_form( Aivec\Welcart\Extensions\ItemComboSet\Types\ComboGroup $group, Aivec\Welcart\Extensions\ItemComboSet\Types\GroupItem[] $items, array $selection )
パラメータ パラメータ
- $group
 (ComboGroup) (必須)
- $items
 (GroupItem[]) (必須)
- $selection
 (配列) (必須)
ファイル: src/template-functions.php
function wcexics_get_singleselect_items_form($group, $items, $selection) {
    $selected = null;
    $hookargs = [
        'sessionSelections' => $selection,
        'groupItems' => $items,
        'group' => $group,
    ];
    $targetcombosetid = isset($_SESSION['wcexicsComboSetId']) ? (int)$_SESSION['wcexicsComboSetId'] : null;
    $gname = "wcexicsGroups[{$group->getComboSetId()}][{$group->getId()}][]";
    ob_start();
    ?>
    <select
        class="combo-set-group-item"
        id="wcexics_group_<?php echo esc_attr($group->getId()); ?>"
        name="<?php echo esc_attr($gname); ?>"
        data-group-id="<?php echo esc_attr($group->getId()); ?>"
    >
        <?php
        if ($group->getOptional() === true) {
            ?>
            <option value="-1"><?php _e('-- Select --', 'usces'); ?></option>
            <?php
        }
        $index = 0;
        foreach ($items as $item) {
            $id = 'combo-set-group-item_' . $item->getId();
            $isselected = false;
            if (!empty($selection)) {
                $isselected = in_array($item->getId(), $selection, true);
            } else {
                $isselected = $index === 0 && $group->getOptional() === false;
            }
            if ($isselected === true) {
                $selected = $item;
            }
            ?>
            <option
                id="<?php echo esc_attr($id); ?>"
                value="<?php echo esc_attr($item->getId()); ?>"
                data-item-id="<?php echo $item->getId(); ?>"
                data-group-id="<?php echo esc_attr($item->getGroupId()); ?>"
                <?php echo $isselected ? ' selected' : ''; ?>
            >
                <?php echo wcexics_get_group_item_label($item); ?>
            </option>
            <?php
            $index++;
        }
        ?>
    </select>
    <?php
    foreach ($items as $item) {
        ?>
        <div
            id="group-item-details_<?php echo $item->getId(); ?>"
            class="combo-set-form__group-item-details"
            <?php echo $selected !== null && $selected->getId() === $item->getId() ? '' : ' style="display: none"'; ?>
        >
            <?php
            $skucode = urlencode($item->getSkuData()['code']);
            $errors = usces_singleitem_error_message($item->getPostId(), $skucode, 'return');
            if (!empty($errors) && $group->getComboSetId() === $targetcombosetid) {
                $ehtml = '<div class="wcexics_errors">';
                $ehtml .= $errors;
                $ehtml .= '</div>';
                $ehtml = apply_filters(
                    'wcexics_filter_singleselect_group_item_error_html',
                    $ehtml,
                    array_merge(
                        $hookargs,
                        [
                            'errors' => $errors,
                            'item' => $item,
                            'selected' => $selected,
                        ]
                    )
                );
                echo $ehtml;
            }
            wcexics_display_item_options($item);
            ?>
        </div>
        <?php
    }
    $html = (string)ob_get_clean();
    $html = apply_filters('wcexics_filter_singleselect_items_form_html', $html, $hookargs);
    return $html;
}