自定义WooCommerce插件设置页多产品分类选择实现求助
WooCommerce产品分类多选实现方案
以下是和你现有产品多选逻辑一致的产品分类多选实现代码,可直接集成到插件设置页中,选中的分类ID会保存到options表:
<select class="wc-product-search" multiple="multiple" style="width: 50%;" id="namedayemail_options[exclude_cats]" name="namedayemail_options[exclude_cats][]" data-placeholder="<?php esc_attr_e( 'Search for a product category…', 'woocommerce' ); ?>" data-action="woocommerce_json_search_products_categories" > <?php if (isset($options['exclude_cats'])) { $ex_category_ids = $options['exclude_cats']; foreach ( $ex_category_ids as $category_id ) { $category = get_term( $category_id, 'product_cat' ); if ( is_object( $category ) && !is_wp_error( $category ) ) { echo '<option value="' . esc_attr( $category_id ) . '"' . selected( true, true, false ) . '>' . wp_kses_post( $category->name ) . '</option>'; } } } ?> </select>
关键改动说明:
- 字段名称替换为
exclude_cats,可根据你的实际需求调整字段标识 data-action改为woocommerce_json_search_products_categories,这是WooCommerce内置的AJAX动作,支持实时搜索产品分类- 占位符文本更新为产品分类搜索提示
- PHP部分使用
get_term()函数获取产品分类对象(产品分类对应的分类法为product_cat),输出分类名称并保持选中状态
保存逻辑说明
如果你的插件设置保存逻辑已经支持数组类型(和现有产品多选的exclude_prods处理逻辑一致),无需额外修改保存代码,exclude_cats数组会自动保存到options表中。
内容的提问来源于stack exchange,提问作者Vlado
相关产品推荐
相关产品推荐

