在选择时将添加到购物车按钮更改为预购

2021-12-19 00:00:00 php magento

如果在可配置的选定产品上选择了一个选项,我在使用 php 和 jquery for magento 将按钮从添加到购物车更改为预订时遇到了一个小麻烦.

i have a small trouble to get working a php and jquery for magento to change button from add to cart to preorder if an option is selected on configurable selected product.

用于检查可配置中的简单子产品之一是否已选择该选项的 php.

The php to check if one of the simple children products from configurable has the option selected.

<?php
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();

$productMap = array();
foreach($col as $simpleProduct){
    $productMap[$simpleProduct->getId()] = $simpleProduct->getAttributeText('preorder');
    //$test = $simpleProduct->getId() && $simpleProduct->getAttributeText('preorder');
}
?>

回声结果:预购

如果所选产品有选项,Jquery 更改按钮.

Jquery to change the button if the selected product has the option.

<?php if($productMap) { ?>
<script type="text/javascript">
    jQuery(document).ready(function() {

        // On document ready hide the button to preorder first
        jQuery("#addtopreorder").hide();
        jQuery("#addtocart").show();
        jQuery("#<?=$productMap ?>").change(function() { 
            // Hide the button to preorder on slect element change action
            jQuery("#addtopreorder").hide();

            // Get the value of selected option
            var optionValue = jQuery(this).attr('value');
            // Just a test to see if you're getting option value
            //alert(optionValue);
            // Get the content (aka inner HTML) of selected option
            var optionValueText = jQuery.trim(jQuery('#<?=$productMap ?> :selected').text());

            // Just a test to see if you're getting right selected option inner text
            // alert(optionValueText);
            // alert('Selected option has value: ' + optionValue + ' and inner text: ' + optionValueText);

            // Show the button based on selected value
            // Whatch out, case sensitive...
            if( ! optionValue ){ 
                jQuery("#addtocart").show();
            } else {
                jQuery("#addtopreorder").show();
            }
        });
    });
</script>

感谢任何帮助.

推荐答案

问题由 SCP Simple Configurable Product 解决.由有机互联网制作.

Issue resolved by SCP Simple Configurable Product. made by Organic Internet.

扩展链接

相关文章