Добавить 2-ю и 3-ю подкатегории в мою категорию - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь отобразить свои категории и подкатегории в раскрывающихся списках.Я пытаюсь сделать выбор транспортного средства, где клиент должен сначала выбрать свое транспортное средство, затем тип, затем двигатель и т. Д.

Пока основная категория не была первой подкатегорией, я мог это сделать.Однако вторая и третья подкатегории не отображаются.

Я сам не писал эту часть с помощью 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();
?>

1 Ответ

0 голосов
/ 07 февраля 2019

Проходили ли вы какие-либо шаги по отладке?

Вы пытались проверить ваш документ и посмотреть, появляются ли подкатегории вообще?

Я только что сделал Google, и я полагаю, 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

Вот вопрос о переполнении стека, который похож на тот, который вы задали

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

В вашем конкретном случае кажется, что вы 'Вы получаете идентификатор категории, но не похоже, что вы получаете название категории

taxonomy=product_cat&name=subsub_cat

Я не уверен, что это то, что вы хотели.Возможно, вы хотите добавить

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

к вашему сообщению?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...