File "FrmProConditionalLogicController.php"
Full path: /home/bud/public_html/swamp/wp-admin/wp-content/plugins/formidable-pro/classes/controllers/FrmProConditionalLogicController.php
File size: 1.72 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
/**
* @since 2.02.13
*/
class FrmProConditionalLogicController {
/**
* Check if a given field should be present in another field's logic options
*
* @since 2.02.13
*
* @param array $current_field - The current field being displayed for editing
* @param object $logic_field - The logic field
*
* @return bool
*/
public static function is_field_present_in_logic_options( $current_field, $logic_field ) {
$present = true;
$parent_form_id = isset( $current_field['parent_form_id'] ) ? $current_field['parent_form_id'] : '0';
$in_section_id = isset( $logic_field->field_options['in_section'] ) ? $logic_field->field_options['in_section'] : '0';
if ( $logic_field->id == $current_field['id'] ) {
$present = false;
} elseif ( FrmField::is_no_save_field( $logic_field->type ) ) {
$present = false;
} elseif ( in_array( $logic_field->type, array( 'file', 'date', 'address', 'credit_card' ) ) ) {
$present = false;
} elseif ( FrmProField::is_list_field( $logic_field ) ) {
$present = false;
} elseif ( $logic_field->form_id != $current_field['form_id'] && $logic_field->form_id != $parent_form_id ) {
$present = false;
} elseif ( $in_section_id == $current_field['id'] ) {
$present = false;
}
/**
* Allows excluding fields in the conditional logic options.
*
* @since 5.0
*
* @param bool $present Is `true` if field is present in the conditional logic options.
* @param array $args The arguments. Contains `$current_field` and `$logic_field`.
*/
return apply_filters( 'frm_is_field_present_in_logic_options', $present, compact( 'current_field', 'logic_field' ) );
}
}