javascript - WooCommerce - 如何禁用属性选项菜单,直到选择上面的菜单?

标签 javascript php jquery wordpress woocommerce

在可变产品的产品页面上,我想使用 javascript/jQuery 来控制属性下拉菜单。

基本上,我希望只有当用户已经从选项菜单 1 中选择了一个选项时,才可以选择选项菜单 2

示例:

我的可变产品

  • 平台:选项菜单 1(用户必须选择平台,例如 Mac|PC,然后才能继续...)
  • 版本:选项菜单 2(例如完整版 | 升级。必须在...之前选择)
  • 运输:选项菜单 3(盒装 | 下载)

如果有人甚至可以向我指出使用 javascript/jQuery 访问这些选项菜单的正确方法,我可以尝试从那里获取它。

感谢您的帮助。

最佳答案

终于解决了...

您需要复制:'/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 -->

这对我有用。希望它对某人有帮助。

我在这里获得了更多帮助(可能也有用):

Enable Sequential Select Menus when you don't know the IDs

关于javascript - WooCommerce - 如何禁用属性选项菜单,直到选择上面的菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22080663/

相关文章:

javascript - 通过 getElementById().innerHTML 编辑 div 没有任何变化

javascript - 背景网格上每个 block 的不同图像

javascript - 提交表单时保持选中复选框

jquery - jquery 中的可滚动、轮播、 slider ,无需任何插件 - 最简单的方法

javascript - 文档事件冒泡适用于 Firefox,但不适用于 Safari 或 Chrome

javascript - DateFormat 在 Google Annotation Chart 上显示季度数字

php - 在MYSQL中选择未注册的值

php - 如何使用 REST 在 RT 中创建带有附件的工单

php - 在数据库codeigniter中插入多个值?

php 命名空间基准测试