| Server IP : 52.25.153.185 / Your IP : 216.73.217.131 Web Server : Apache System : Linux ip-172-26-6-158 5.10.0-35-cloud-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64 User : daemon ( 1) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/fluentformpro/src/classes/ |
Upload File : |
<?php
namespace FluentFormPro\classes;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
use FluentForm\App\Services\ConditionAssesor;
use FluentForm\Framework\Helpers\ArrayHelper;
class AdvancedFormValidation
{
public function validateAdvancedConditions($errors, $data, $form, $fields)
{
$conditionals = $this->getAdvancedCondition($form->id);
if(!ArrayHelper::get($conditionals, 'status')) {
return $errors;
}
$isMatched = $this->checkCondition([
'conditionals' => $conditionals
], $data, $form);
$validationType = ArrayHelper::get($conditionals, 'validation_type', 'fail_on_condition_met');
$ifFailedOnTrue = $validationType == 'fail_on_condition_met';
if( ($ifFailedOnTrue && $isMatched) || (!$ifFailedOnTrue && !$isMatched)) {
$errorMessage = $conditionals['error_message'];
if(!$errorMessage) {
$errorMessage = __('Form validation has been failed', 'fluentformpro');
}
$errors['advanced_validation_error'] = $errorMessage;
}
return $errors;
}
private function getAdvancedCondition($formId)
{
$settingsMeta = wpFluent()->table('fluentform_form_meta')
->where('form_id', $formId)
->where('meta_key', 'advancedValidationSettings')
->first();
if(!$settingsMeta || !$settingsMeta->value) {
return false;
}
return \json_decode($settingsMeta->value, true);
}
private function checkCondition($settings, $formData, $form = null)
{
$conditionSettings = ArrayHelper::get($settings, 'conditionals');
if (
!$conditionSettings ||
!ArrayHelper::isTrue($conditionSettings, 'status')
) {
return true;
}
return ConditionAssesor::evaluate($settings, $formData, $form);
}
}