diff --git a/assets/css/admin.css b/assets/css/admin.css index 9711c72..02915c6 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -1,3 +1,18 @@ -/* Yoone Product Bundles 后台样式(简版) */ -#yoone_bundle_data .description { color: #666; display: block; margin-top: 6px; } -#yoone_bundle_data .form-field { margin-bottom: 12px; } \ No newline at end of file +/* Yoone Product Bundles 后台样式优化 */ +#yoone_bundle_data { padding-top: 8px; } +#yoone_bundle_data .form-field { margin-bottom: 16px; } +/* 让标签独占一行,避免窄屏换行难看 */ +#yoone_bundle_data .form-field > label { display: block; font-weight: 600; margin-bottom: 6px; } +/* 描述放到下一行,颜色更柔和 */ +#yoone_bundle_data .description { color: #666; display: block; margin-top: 6px; line-height: 1.4; } +/* 选择器与搜索框占满一行 */ +#yoone_bundle_data .wc-product-search, +#yoone_bundle_data .wc-enhanced-select, +#yoone_bundle_data select, +#yoone_bundle_data input[type="text"], +#yoone_bundle_data input[type="number"] { width: 100% !important; max-width: 820px; } +/* Select2 容器也撑满 */ +#yoone_bundle_data .select2-container { width: 100% !important; max-width: 820px; } +/* 按钮的间距 */ +#yoone_bundle_data .yoone-add-all-simple-products { margin-left: 0; margin-bottom: 8px; } +#yoone_bundle_data .yoone-clear-products-list { margin-left: 8px; margin-bottom: 8px; } \ No newline at end of file diff --git a/assets/js/admin.js b/assets/js/admin.js index 2563f26..5dd185d 100644 --- a/assets/js/admin.js +++ b/assets/js/admin.js @@ -1,52 +1,85 @@ -(function($) { - $(document).ready(function() { - // “一键添加所有 Simple Product” 按钮点击事件 - $(document).on('click', '.yoone-add-all-simple-products', function(e) { - e.preventDefault(); +/* Yoone Product Bundles - Admin dynamic grouping terms + * When switching grouping taxonomy (category/tag), refresh the terms select list accordingly. + */ +(function($){ + $(function(){ + var $tax = $('#yoone_bundle_group_taxonomy'); + var $terms = $('#yoone_bundle_group_terms'); + var $addAllBtn = $('.yoone-add-all-simple-products'); + var $clearBtn = $('.yoone-clear-products-list'); + var $productSelect = $('select[name="yoone_bundle_allowed_products[]"]'); - var $button = $(this); - var $select = $('select.wc-product-search[name="yoone_bundle_allowed_products[]"]'); - var nonce = $('#yoone_bundle_admin_nonce_field').val(); + if (typeof YoonePBAdmin === 'undefined') { + return; + } - $button.prop('disabled', true).text('正在加载...'); + function refreshTerms(tax) { + if (!tax) return; + $terms.prop('disabled', true); + $.post(YoonePBAdmin.ajax_url, { + action: 'yoone_get_taxonomy_terms', + taxonomy: tax, + security: YoonePBAdmin.security + }).done(function(resp){ + if (resp && resp.success && Array.isArray(resp.data)) { + var items = resp.data; + $terms.empty(); + items.forEach(function(item){ + var opt = $('