<?php // vars $disabled = false; // empty if( empty($field['conditional_logic']) ) { $disabled = true; $field['conditional_logic'] = array( // group 0 array( // rule 0 array() ) ); } ?> <tr class="acf-field acf-field-true-false acf-field-setting-conditional_logic" data-type="true_false" data-name="conditional_logic"> <td class="acf-label"> <label><?php _e("Conditional Logic",'acf'); ?></label> </td> <td class="acf-input"> <?php acf_render_field(array( 'type' => 'true_false', 'name' => 'conditional_logic', 'prefix' => $field['prefix'], 'value' => $disabled ? 0 : 1, 'ui' => 1, 'class' => 'conditions-toggle', )); ?> <div class="rule-groups" <?php if($disabled): ?>style="display:none;"<?php endif; ?>> <?php foreach( $field['conditional_logic'] as $group_id => $group ): // validate if( empty($group) ) continue; // vars // $group_id must be completely different to $rule_id to avoid JS issues $group_id = "group_{$group_id}"; $h4 = ($group_id == "group_0") ? __("Show this field if",'acf') : __("or",'acf'); ?> <div class="rule-group" data-id="<?php echo $group_id; ?>"> <h4><?php echo $h4; ?></h4> <table class="acf-table -clear"> <tbody> <?php foreach( $group as $rule_id => $rule ): // valid rule $rule = wp_parse_args( $rule, array( 'field' => '', 'operator' => '', 'value' => '', )); // vars // $group_id must be completely different to $rule_id to avoid JS issues $rule_id = "rule_{$rule_id}"; $prefix = "{$field['prefix']}[conditional_logic][{$group_id}][{$rule_id}]"; // data attributes $attributes = array( 'data-id' => $rule_id, 'data-field' => $rule['field'], 'data-operator' => $rule['operator'], 'data-value' => $rule['value'] ); ?> <tr class="rule" <?php acf_esc_attr_e($attributes); ?>> <td class="param"> <?php acf_render_field(array( 'type' => 'select', 'prefix' => $prefix, 'name' => 'field', 'class' => 'condition-rule-field', 'disabled' => $disabled, 'value' => $rule['field'], 'choices' => array( $rule['field'] => $rule['field'] ) )); ?> </td> <td class="operator"> <?php acf_render_field(array( 'type' => 'select', 'prefix' => $prefix, 'name' => 'operator', 'class' => 'condition-rule-operator', 'disabled' => $disabled, 'value' => $rule['operator'], 'choices' => array( $rule['operator'] => $rule['operator'] ) )); ?> </td> <td class="value"> <?php // create field acf_render_field(array( 'type' => 'select', 'prefix' => $prefix, 'name' => 'value', 'class' => 'condition-rule-value', 'disabled' => $disabled, 'value' => $rule['value'], 'choices' => array( $rule['value'] => $rule['value'] ) )); ?> </td> <td class="add"> <a href="#" class="button add-conditional-rule"><?php _e("and",'acf'); ?></a> </td> <td class="remove"> <a href="#" class="acf-icon -minus remove-conditional-rule"></a> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <?php endforeach; ?> <h4><?php _e("or",'acf'); ?></h4> <a href="#" class="button add-conditional-group"><?php _e("Add rule group",'acf'); ?></a> </div> </td> </tr>