WooCommerce - 如何禁用,直到上面的一个被选中属性选项菜单?(WooCommerce

2019-10-19 10:48发布

对一个变量的产品的产品页面上,我想使用JavaScript / jQuery来控制属性的下拉菜单。

基本上,我想选项菜单2是可选择的,只有当用户已经从选择选项菜单1的选项

例:

我的变量产品

  • 平台:选项菜单(用户必须选择的平台,苹果机|电脑为例,才可以继续...)
  • 版本:选项菜单2(完整版本|升级例如之前一定要选择...)
  • 航运:选项菜单3(盒装|下载)

如果有人甚至可以点我访问使用JavaScript / jQuery的这些选项菜单正确的方法,我可以尝试把它从那里。

谢谢你的帮助。

Answer 1:

终于摸索了这一点...

你需要复制:“/wp-content/plugins/woocommerce/templates/single-product/add-to-cart/variable.php”

到: '/wp-content/themes/my_theme/woocommerce/single-product/add-to-cart/variable.php'

这是产生于不同产品属性,选择菜单中的文件,所以你要创建一个版本来编辑你的主题。

</form>上约 线107添加以下内容:

<!-- MySite Menu Additions -->
    <script type="text/javascript">
    <?php if ( ! empty( $available_variations ) ) { ?>

        jQuery(document).ready(function($) {

            <?php
                $loop = 0;
                foreach ( $attributes as $name => $options ) {
                $loop++;
            ?>
                $(function() {
                    $( "#<?php echo $name ?>" ).change(function() {
                        if ($(this).val() != "") { // Because "Choose an option..." has a value of ''
                            $(this).closest( 'tr' ).next().find( '.value-variable' ).prop( "disabled", false );
                        }
                        else
                        {
                            $(this).closest( 'tr' ).nextAll().find( '.value-variable' ).prop( "disabled", true );
                            $(this).closest( 'tr' ).nextAll().find( '.value-variable' ).val( "" );

                        }
                    });
                });

            <?php } //End foreach ?>

        });

    <?php } ?>

    </script>
<!-- End: MySite Menu Additions -->

这对我行得通。 希望它可以帮助别人。

我得到了这个额外的帮助这里(也可能是有用的):

启用顺序选择菜单,当你不知道的ID



文章来源: WooCommerce - how do I disable attribute option menus until the one above is selected?