是否可以将可用的自定义选项列表输出到 Magento 中的 view.phtml 页面上?显然,下拉列表允许您向下过滤,但我需要在 html 表中列出它们并允许客户将每个项目添加到购物车。
问问题
1080 次
1 回答
1
我将向您展示如何将选项转换dropdown
为multi-select
表格格式。这是解决问题的代码。
<?php
$product = Mage::Registry('current_product');
$options = $product->getOptions();
//check for option exists
if($options):
foreach ($options as $option) :
//table format allows only for select options
if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN ||
$option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE):
$require = ($option->getIsRequire()) ? ' required-entry' : '';
if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
$value_name = 'options['.$option->getid().']';
else:
$value_name = 'options['.$option->getid().'][]';
endif;
?>
<table border="1" style="width:500px;margin-bottom:30px">
<thead>
<tr<?php if ($option->getIsRequire()) echo ' class="required"' ?>>
<th><?php echo $option->getTitle() ?></th>
<th><?php if ($option->getIsRequire()) echo '<em>*</em>' ?></th>
</tr>
</thead>
<tbody id="<?php echo 'select_'.$option->getId() ?>" class="<?php echo $require.' product-custom-option' ?>">
<?php
foreach ($option->getValues() as $values) :
$value = $values->getOptionTypeId();
$value_title = $values->getTitle();
?>
<tr>
<td>
<?php
if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
?>
<input type="radio" name="<?php echo $value_name; ?>" class="radio_option" id="<?php echo 'radio_option_'.$value ?>" value="<?php echo $value; ?>" />
<?php
else:
?>
<input type="checkbox" name="<?php echo $value_name; ?>" class="checkbox_option" id="<?php echo 'checkbox_option_'.$value ?>" value="<?php echo $value; ?>" />
<?php
endif;
?>
</td>
<td><?php echo $value_title; ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
</table>
<?php
endif;
endforeach;
endif;
?>
对于dropdown
选项,我们radio button
用来显示它们的值。对于multiselect
选项,checkbox
使用输入。因此,如果复选框出现在表格中,这意味着它是一个多选选项,因此一次可以有多个复选框。由于单选按钮用于下拉选项,因此确保一次只选中一个单选按钮很重要。(我们需要使用 javascript 来确保这一点)。
因此,如果我们像这样通过管理员为产品设置一些自定义选项..
与我们的代码对应的输出将如下所示
注意:请注意,代码是非常基本的格式。您可能需要额外的 css 和 javascripts 使其更加用户化。这是为了给你一个基本的想法和额外的 css,js 因此是开箱即用的主题。
有关代码的更多信息,请查看我的博客
希望能帮助到你
于 2014-07-14T19:16:56.280 回答