/** * ACF Meta Location Rule - Field Group custom JS * ============================================== */ jQuery(function($) { var initialize = function() { initializeOnRuleChange(); }; var initializeOnRuleChange = function() { // future change - unfortunately ACF doesn't trigger any action after // injecting it's ajax-fetched value, so we do this little check on each // ajax success $(document).ajaxSuccess(function() { $('#acf_location .location-groups td.value select:visible').each(onRuleChange); }); // on load $('#acf_location .location-groups td.value select:visible').each(onRuleChange); // on field value change $('#acf_location .location-groups').on('change', 'input[data-meta]', function() { $(this).parents('tr[data-id]').find('td.param select').each(onValueChange); }); }; /** * When the rule meta_field is selected, transform the select into the dynamic * input-fields. */ var onRuleChange = function() { var valOuter = $(this).parent(); // is it a relevant field we're working on? if ($(this).parents('tr[data-id]').find('td.param select').val() !== 'meta_field') return; var valSelect = valOuter.children('select'); var selValue = valSelect.val() || ''; valSelect.hide(); // remove any previous tables valOuter.children('table').remove(); // add our new table var domElString = '