Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce:将类别复选框更改为下拉列表_Php_Jquery_Wordpress_Woocommerce - Fatal编程技术网

Php WooCommerce:将类别复选框更改为下拉列表

Php WooCommerce:将类别复选框更改为下拉列表,php,jquery,wordpress,woocommerce,Php,Jquery,Wordpress,Woocommerce,请帮帮我 我需要将类别复选框更改为WooCommerce添加产品页面上的下拉列表。用户应该只能选择一个类别 当用户选择类别时,所选类别的所有子类别都应位于下一个下拉列表中。用户应该只能选择一个子类别 然后我需要把这两个下拉列表放在产品数据下拉列表下 如何删除产品类别块? 如何将类别下拉列表添加到产品数据块? 如何根据在第一个下拉列表中选择的类别在第二个下拉列表中放置子类别? 如何删除产品类别块 function remove_custom_meta_box() { remove_meta

请帮帮我

我需要将类别复选框更改为WooCommerce添加产品页面上的下拉列表。用户应该只能选择一个类别

当用户选择类别时,所选类别的所有子类别都应位于下一个下拉列表中。用户应该只能选择一个子类别

然后我需要把这两个下拉列表放在产品数据下拉列表下

如何删除产品类别块? 如何将类别下拉列表添加到产品数据块? 如何根据在第一个下拉列表中选择的类别在第二个下拉列表中放置子类别? 如何删除产品类别块

function remove_custom_meta_box() {
    remove_meta_box('{taxonomy-name}div', 'product', 'side');
}
add_action('admin_menu', 'remove_custom_meta_box');
如何将类别下拉列表添加到产品数据块

如何根据在第一个下拉列表中选择的类别在第二个下拉列表中放置子类别

function categories_dropdown_metabox() {
    add_meta_box('custom-taxonomy-dropdown', 'Product Category', 'taxonomy_dropdowns_box', 'product', 'side', 'high');
}

function taxonomy_dropdowns_box($post) {
    $terms        = get_terms('product_cat', 'hide_empty=0');
    $object_terms = wp_get_object_terms($post->ID, 'product_cat', array('fields'=>'ids'));

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('#product-category').change(function() {
                var product = jQuery('#product-category').val();
                if ( product == '0') {
                    jQuery('#prodcatoptions').html('');
                        jQuery('#categorycontainer').css('display', 'none');
                } else {
                    var data = {
                        'action':'get_product_categories',
                        'product':product,
                        'dropdown-nonce': jQuery('#dropdown-nonce').val()
                    };
                    jQuery.post(ajaxurl, data, function(response){
                        jQuery('#prodcatoptions').html(response);
                        jQuery('#categorycontainer').css('display', 'inline');
                    });
                }
            });
        });
    </script>       

    <div> 
        <span>Category:</span>
        <select required id='product-category' name='prodcategory[]'>
            <option value=''>Choose category</option>
            <?php
            foreach ($terms as $term) {
                if ($term->parent == 0) {
                    if (in_array($term->term_id, $object_terms)) {
                        $parent_id = $term->term_id;
                        echo "<option value='{$term->term_id}' selected='selected'>{$term->name}</option>";
                    } else {
                        echo "<option value='{$term->term_id}'>{$term->name}</option>";
                    }
                }
            }
            ?>
        </select>
    </div>
    <div id='categorycontainer' <?php if (!isset($parent_id)) { echo "style='display: none;'"; }?> >
        <span>Subcategory:</span>
        <select required id='prodcatoptions' name='prodcategory[]'>
            <?php
            if (isset($parent_id)) {
                $models = get_terms('product_cat', 'hide_empty=0&child_of='.$parent_id);

                foreach ($models as $model) {
                    if (in_array($model->term_id, $object_terms)) {
                        echo "<option value='{$model->term_id}' selected='selected'>{$model->name}</option>";
                    } else {
                        echo "<option value='{$model->term_id}'>{$model->name}</option>";
                    }
                }

            }
            ?>
        </select>
    </div>
    <?php
}

add_action('add_meta_boxes', 'categories_dropdown_metabox');

function save_my_custom_taxonomy($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }    
    if (!wp_verify_nonce($_POST['dropdown-nonce'], 'custom-dropdown')) {
        return;
    }  
    $product_cat = array_map('intval', $_POST['prodcategory']);
    wp_set_object_terms($post_id, $product_cat, 'product_cat');
}

add_action('save_post','save_my_custom_taxonomy');

function get_product_categories() {
    check_ajax_referer('custom-dropdown', 'dropdown-nonce');
    if (isset($_POST['product'])) {
        $models = get_terms('product_cat', 'hide_empty=0&child_of='. $_POST['product']);
        echo "<option value=''>Choose subcategory</option>";
        foreach ($models as $model) {
            echo "<option value='{$model->term_id}'>{$model->name}</option>";
        }
    }
    die();
}

add_action( 'wp_ajax_get_product_categories', 'get_product_categories' );

你要求的是大量的开发工作。这不仅仅是一个你在工作中遇到的问题。为此,您必须修改插件,以便更好地找到开发人员来完成这项工作。