ファンクション
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; }