将第2和第3子类别添加到我的类别下拉列表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将第2和第3子类别添加到我的类别下拉列表中相关的知识,希望对你有一定的参考价值。

我正在尝试在下拉列表中显示我的类别和子类别。我尝试选择车辆,客户必须首先选择他的车辆,然后是类型,然后选择发动机等。

直到主要类别成为第一个子类别,我才能做到这一点。但是,不显示第二个和第三个子类别。

我自己没有用javascript编写该部分,因为我很遗憾仍然是Javascript的初学者。

有人可以帮助我并告诉我我做错了什么吗?

这是我的代码:

<?php
if ( ! class_exists( 'frontendAjaxDropdown' ) ):
    class frontendAjaxDropdown
    {

        function __construct()
        {

            add_shortcode( 'car_conf', array($this, 'init_shortocde') );

            add_action( 'wp_ajax_get_subcat', array($this, 'getSubCat') );
            add_action( 'wp_ajax_get_subsubcat', array($this, 'getSubSubCat') );


            add_action('wp_ajax_nopriv_get_subcat', array($this, 'getSubCat') );
            add_action('wp_ajax_nopriv_get_subsubcat', array($this, 'getSubSubCat') );

        }

        function init_shortocde()
        {

            wp_dropdown_categories(
                'taxonomy=product_cat&name=main_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&show_option_none=All Categories'
            );
            ?>
            <script type="text/javascript">
                (function($){
                    $("#main_cat").change(function(){
                        $("#sub_cat").empty();
                        $.ajax({
                            type: "post",
                            url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
                            data: { action: 'get_subcat', cat_id: $("#main_cat option:selected").val() },
                            success: function(data) {
                                $("#sub_cat").append(data);
                            }
                        });
                    });
                })(jQuery);

                (function($){
                    $("#sub_cat").change(function(){
                        $("#subsub_cat").empty();
                        $.ajax({
                            type: "post",
                            url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
                            data: { action: 'get_subsubcat', cat_id: $("#sub_cat option:selected").val() },
                            success: function(data) {
                                $("#subsub_cat").append(data);
                            }
                        });
                    });
                })(jQuery);
            </script>

            <div id="sub_cat"></div>
            <div id="subsub_cat"></div>

            <?php
        }


        function getSubCat()
        {
            wp_dropdown_categories(
                "taxonomy=product_cat&name=sub_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id']}"
            );
            die();
        }

        function getSubSubCat()
        {
            wp_dropdown_categories(
                "taxonomy=product_cat&name=subsub_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id']}"
            );
            die();
        }
    }
endif;
new frontendAjaxDropdown();
?>
答案

你有没有完成任何调试步骤?

您是否尝试过检查文档并查看子类别是否显示?

我只是做了谷歌,我相信WP将这个功能包含在一个函数中:

https://developer.wordpress.org/reference/functions/wp_list_categories/

这可能就是你想要的

这里有两个可能有用的链接

https://www.sitepoint.com/mastering-wordpress-categories-api/ https://www.youtube.com/watch?v=n1ZhJ_rIHjQ

这是一个stackoverflow问题,看起来与你问的类似

https://wordpress.stackexchange.com/questions/163372/how-to-get-woocommerce-product-category-link-by-id

在您的具体情况下,您似乎获得了类别ID,但似乎您没有获得类别名称

taxonomy=product_cat&name=subsub_cat

我不确定这是不是你想要的。也许你想补充一下

cat_name: $("#main_cat option:selected").val()

你的帖子?

以上是关于将第2和第3子类别添加到我的类别下拉列表中的主要内容,如果未能解决你的问题,请参考以下文章

显示动态 WooCommerce 兄弟姐妹和直接子类别列表

创建相互依赖的下拉列表

如何在 Rails 中创建类别

片段之间的共享数据(父列表视图和子列表视图)

从类别下拉列表中选择后,wordpress 更改类别表示

如何根据第一个下拉列表的选择过滤第二个下拉列表? - 角