/** * Admin JavaScript for Composable Products * * @package Magdev\WcComposableProduct */ (function($) { 'use strict'; $(document).ready(function() { /** * Show/hide product data tab for composable products */ $('select#product-type').on('change', function() { const productType = $(this).val(); if (productType === 'composable') { $('.show_if_composable').show(); $('.hide_if_composable').hide(); // Show the composable tab, then click it so WooCommerce's // native tab system hides all other panels properly $('.product_data_tabs li.composable_options').show(); $('ul.product_data_tabs li.composable_options a').trigger('click'); } else { $('.show_if_composable').hide(); $('.product_data_tabs li.composable_options').hide(); $('#composable_product_data').hide(); } }).trigger('change'); /** * Toggle criteria groups based on selected type */ $('#_composable_criteria_type').on('change', function() { const criteriaType = $(this).val(); $('.composable_criteria_group').hide(); $('#composable_criteria_' + criteriaType).show(); }).trigger('change'); /** * Toggle fixed price field based on pricing mode */ function toggleFixedPriceField() { const pricingMode = $('#_composable_pricing_mode').val(); const $fixedPriceField = $('.composable_fixed_price_field'); if (pricingMode === 'fixed') { $fixedPriceField.show(); } else { $fixedPriceField.hide(); } } $('#_composable_pricing_mode').on('change', toggleFixedPriceField); toggleFixedPriceField(); /** * Initialize enhanced select for categories and tags */ if ($.fn.selectWoo) { $('#_composable_categories, #_composable_tags').selectWoo({ placeholder: 'Select options...', allowClear: true }); } }); })(jQuery);