ファンクション
wcexics_get_item_options_selection_forms( Aivec\Welcart\Extensions\ItemComboSet\Types\GroupItem $item, string $name, string $label = '#default#' )
パラメータ パラメータ
- $item
(GroupItem) (必須)
- $name
(文字列) (必須)
- $label
(文字列) (任意)
ファイル: src/template-functions.php
function wcexics_get_item_options_selection_forms(GroupItem $item, $name, $label = '#default#') {
$post_id = $item->getPostId();
$itemid = $item->getId();
if ($label == '#default#') {
$label = $name;
}
$opts = usces_get_opts($post_id, 'name');
if (!$opts) {
return '';
}
$opt = $opts[$name];
$opt['value'] = usces_change_line_break($opt['value']);
$means = (int)$opt['means'];
$essential = (int)$opt['essential'];
$html = '';
$optcode = esc_attr(urlencode($name));
$name = esc_attr($name);
$label = esc_attr($label);
$inputname = "wcexicsGroupItemOption[{$itemid}][{$optcode}]";
$metadata = 'data-item-id="' . $itemid . '" data-opt-code="' . $optcode . '"';
$session_value = isset($_SESSION['wcexicsGroupItemOption'][$itemid][$optcode]) ? $_SESSION['wcexicsGroupItemOption'][$itemid][$optcode] : null;
unset($_SESSION['wcexicsGroupItemOption'][$itemid][$optcode]);
$html .= "\n<label for='{$inputname}' class='iopt_label'>{$label}</label>\n";
switch ($means) {
case 0:// Single-select
case 1:// Multi-select
$selects = explode("\n", $opt['value']);
$multiple = ($means === 0) ? '' : ' multiple';
$multiple_array = ($means == 0) ? '' : '[]';
$html .= "\n<select name='{$inputname}{$multiple_array}' {$metadata} id='{$inputname}' class='iopt_select'{$multiple} onKeyDown=\"if (event.keyCode == 13) {return false;}\">\n";
if ($essential == 1) {
if (0 == $means && ('#NONE#' == $session_value || null == $session_value)) {
$selected = ' selected="selected"';
} else {
$selected = '';
}
$html .= "\t<option value='#NONE#'{$selected}>" . __('Choose', 'usces') . "</option>\n";
}
$i = 0;
foreach ((array)$selects as $v) {
$v = trim($v);
$sessionsel = false;
if (!is_array($session_value)) {
if (esc_attr($v) == $session_value) {
$sessionsel = true;
}
} else {
if (in_array(esc_attr($v), $session_value, true)) {
$sessionsel = true;
}
}
if (($i == 0 && $essential == 0 && null == $session_value) || $sessionsel) {
$selected = ' selected="selected"';
} else {
$selected = '';
}
$html .= "\t<option value='" . esc_attr($v) . "'{$selected}>" . esc_attr($v) . "</option>\n";
$i++;
}
$html .= "</select>\n";
break;
case 2:// Text
$html .= "\n<input name='{$inputname}' {$metadata} type='text' id='{$inputname}' class='iopt_text' onKeyDown=\"if (event.keyCode == 13) {return false;}\" value=\"" . esc_attr($session_value) . "\" />\n";
break;
case 3:// Radio-button
$session_value = urldecode($session_value);
$selects = explode("\n", $opt['value']);
$i = 0;
foreach ((array)$selects as $v) {
$v = trim($v);
if ($v == $session_value) {
$checked = ' checked="checked"';
} else {
$checked = '';
}
$html .= "\t<label for='{$inputname}{$i}' class='iopt_radio_label'><input name='{$inputname}' {$metadata} id='{$inputname}{$i}' class='iopt_radio' type='radio' value='" . urlencode($v) . "'{$checked}>" . esc_html($v) . "</label>\n";
$i++;
}
break;
case 4:// Check-box
$selects = explode("\n", $opt['value']);
$i = 0;
foreach ((array)$selects as $v) {
$v = trim($v);
if (is_array($session_value) && in_array(urlencode($v), $session_value, true)) {
$checked = ' checked="checked"';
} else {
$checked = '';
}
$html .= "\t<label for='{$inputname}{$i}' class='iopt_checkbox_label'><input name='{$inputname}[]' {$metadata} id='{$inputname}{$i}' class='iopt_checkbox' type='checkbox' value='" . urlencode($v) . "'{$checked}>" . esc_html($v) . "</label><br />\n";
$i++;
}
break;
case 5:// Text-area
$html .= "\n<textarea name='{$inputname}' {$metadata} id='{$inputname}' class='iopt_textarea'>" . esc_attr($session_value) . "</textarea>\n";
break;
}
return $html;
}