0

構成可能な選択された製品でオプションが選択されている場合、magento の php と jquery を操作して、ボタンをカートに追加から事前注文に変更するのに少し問題があります。

configurable の単純な子製品の 1 つにオプションが選択されているかどうかを確認する php。

<?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 を使用してボタンを変更します。

<?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>

どんな助けでも大歓迎です。

4

1 に答える 1

0

問題は SCP Simple Configurable Product によって解決されました。オーガニックインターネット製。

拡張機能へのリンク

于 2013-01-28T00:30:45.560 に答える