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' ) );
	}
}