woocommerce后端下拉产品类别

时间:2014-10-17 14:42:20

标签: drop-down-menu woocommerce product backend categories

我需要在右后方的后端更改“产品类别”部分,并选择下拉菜单。

有人知道,我怎么能在woocommerce中做到这一点?

谢谢

加布

编辑:

我有这样的类别结构: courses (primary category) -french (sub-category) -english (sub-category) --ireland (sub-category) ---Cork (sub-category) ---- school (sub-category)

如果可能的话我需要过滤每个子类别,之后我在层次结构中选择了上面的类别。

这就是我修改你的代码

http://imageshack.com/a/img537/6404/iFstCU.png

http://imageshack.com/a/img674/8991/OL9BqP.png

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码(您可以将此代码放入主题'的function.php文件中):

add_filter( 'woocommerce_taxonomy_args_product_cat', 'add_callback_for_product_cat' );

function add_callback_for_product_cat( $args ) {
    $args['meta_box_cb'] = 'replace_with_product_categories_dropdown';
    return $args;
}

function replace_with_product_categories_dropdown( $post, $box ) {
    $defaults = array( 'taxonomy' => 'category' );
    if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) {
        $args = array();
    } else {
        $args = $box['args'];
    }
    $r = wp_parse_args( $args, $defaults );
    $tax_name = esc_attr( $r['taxonomy'] );
    $taxonomy = get_taxonomy( $r['taxonomy'] );
    ?>
    <div id="taxonomy-<?php echo $tax_name; ?>" class="categorydiv">
        <ul id="<?php echo $tax_name; ?>-tabs" class="category-tabs">
            <li class="tabs"><a href="#<?php echo $tax_name; ?>-all"><?php echo $taxonomy->labels->all_items; ?></a></li>
            <li class="hide-if-no-js"><a href="#<?php echo $tax_name; ?>-pop"><?php _e( 'Most Used' ); ?></a></li>
        </ul>

        <div id="<?php echo $tax_name; ?>-pop" class="tabs-panel" style="display: none;">
            <ul id="<?php echo $tax_name; ?>checklist-pop" class="categorychecklist form-no-clear" >
                <?php $popular_ids = wp_popular_terms_checklist( $tax_name ); ?>
            </ul>
        </div>

        <div id="<?php echo $tax_name; ?>-all" class="tabs-panel">
            <?php
            $name = ( $tax_name == 'category' ) ? 'post_category' : 'tax_input[' . $tax_name . ']';
            echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
            $wp_dropdown_categories_args = array(
                        'hierarchical'       => 1, 
                        'name'               => 'product_cat_select',
                        'id'                 => 'product_cat_select',
                        'class'              => 'postbox',
                        'taxonomy'           => 'product_cat'
                    );
            wp_dropdown_categories( $wp_dropdown_categories_args ); 
            ?>
        </div>
    <?php if ( current_user_can( $taxonomy->cap->edit_terms ) ) : ?>
            <div id="<?php echo $tax_name; ?>-adder" class="wp-hidden-children">
                <h4>
                    <a id="<?php echo $tax_name; ?>-add-toggle" href="#<?php echo $tax_name; ?>-add" class="hide-if-no-js">
                        <?php
                            /* translators: %s: add new taxonomy label */
                            printf( __( '+ %s' ), $taxonomy->labels->add_new_item );
                        ?>
                    </a>
                </h4>
                <p id="<?php echo $tax_name; ?>-add" class="category-add wp-hidden-child">
                    <label class="screen-reader-text" for="new<?php echo $tax_name; ?>"><?php echo $taxonomy->labels->add_new_item; ?></label>
                    <input type="text" name="new<?php echo $tax_name; ?>" id="new<?php echo $tax_name; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $taxonomy->labels->new_item_name ); ?>" aria-required="true"/>
                    <label class="screen-reader-text" for="new<?php echo $tax_name; ?>_parent">
                        <?php echo $taxonomy->labels->parent_item_colon; ?>
                    </label>
                    <?php wp_dropdown_categories( array( 'taxonomy' => $tax_name, 'hide_empty' => 0, 'name' => 'new' . $tax_name . '_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $taxonomy->labels->parent_item . ' &mdash;' ) ); ?>
                    <input type="button" id="<?php echo $tax_name; ?>-add-submit" data-wp-lists="add:<?php echo $tax_name; ?>checklist:<?php echo $tax_name; ?>-add" class="button category-add-submit" value="<?php echo esc_attr( $taxonomy->labels->add_new_item ); ?>" />
                    <?php wp_nonce_field( 'add-' . $tax_name, '_ajax_nonce-add-' . $tax_name, false ); ?>
                    <span id="<?php echo $tax_name; ?>-ajax-response"></span>
                </p>
            </div>
        <?php endif; ?>
    </div>
    <?php
}

希望这会有所帮助。