ファンクション
wcexics_get_multiselect_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_multiselect_items_form($group, $items, $selection) {
$hookargs = [
'sessionSelections' => $selection,
'groupItems' => $items,
'group' => $group,
];
$targetcombosetid = isset($_SESSION['wcexicsComboSetId']) ? (int)$_SESSION['wcexicsComboSetId'] : null;
$gname = "wcexicsGroups[{$group->getComboSetId()}][{$group->getId()}][]";
ob_start();
foreach ($items as $item) {
$id = 'combo-set-group-item_' . $item->getId();
$checked = in_array($item->getId(), $selection, true);
?>
<div>
<input
type="checkbox"
class="combo-set-group-item"
data-item-id="<?php echo $item->getId(); ?>"
id="<?php echo esc_attr($id); ?>"
name="<?php echo esc_attr($gname); ?>"
value="<?php echo esc_attr($item->getId()); ?>"
data-group-id="<?php echo esc_attr($item->getGroupId()); ?>"
<?php echo $checked ? ' checked' : ''; ?>
/>
<label for="<?php echo esc_attr($id); ?>">
<?php echo wcexics_get_group_item_label($item); ?>
</label>
</div>
<div
id="group-item-details_<?php echo $item->getId(); ?>"
class="combo-set-form__group-item-details"
<?php echo !$checked ? ' 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_multiselect_group_item_error_html',
$ehtml,
array_merge(
$hookargs,
[
'errors' => $errors,
'item' => $item,
'checked' => $checked,
]
)
);
echo $ehtml;
}
wcexics_display_item_options($item);
?>
</div>
<?php
}
$html = (string)ob_get_clean();
$html = apply_filters('wcexics_filter_multiselect_items_form_html', $html, $hookargs);
return $html;
}