Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
wp-content
/
plugins
/
formidable
/
classes
/
models
/
fields
:
FrmFieldGdpr.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } /** * @since 6.19 */ class FrmFieldGdpr extends FrmFieldType { /** * @since 6.19 * * @var string */ protected $type = 'gdpr'; /** * @since 6.19 * * @var bool */ protected $has_for_label = false; /** * @since 6.19 * * @var string */ const VIEW_PATH = '/classes/views/frm-fields/front-end/gdpr/gdpr-field.php'; /** * Get the new field defaults. * * @since 6.19 * * @return array */ public function get_new_field_defaults() { if ( FrmFieldGdprHelper::hide_gdpr_field() ) { return array( 'name' => false, 'description' => false, 'type' => $this->type, 'options' => false, 'required' => false, 'field_options' => false, ); } return array( 'name' => $this->get_new_field_name() . __( ' Consent', 'formidable' ), 'description' => '', 'type' => $this->type, 'options' => '', 'required' => true, 'field_options' => $this->get_default_field_options(), ); } /** * Get the field settings for the field type. * * @since 6.19 * * @return bool[] */ protected function field_settings_for_type() { if ( FrmFieldGdprHelper::hide_gdpr_field() ) { return array( 'size' => false, 'clear_on_focus' => false, 'default' => false, 'invalid' => false, 'max' => false, 'required' => false, 'label' => false, 'css' => false, 'label_position' => false, 'description' => false, ); } return array( 'size' => true, 'clear_on_focus' => false, 'default' => false, 'invalid' => false, 'max' => false, 'readonly_required' => true, 'required' => true, ); } /** * Show the primary options for the field. * * @since 6.19 * * @param array $args The arguments. */ public function show_primary_options( $args ) { if ( FrmFieldGdprHelper::hide_gdpr_field() ) { return; } $field = $args['field']; include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/gdpr/primary-options.php'; } public function show_label_on_form_builder() { if ( FrmFieldGdprHelper::hide_gdpr_field() ) { return; } parent::show_label_on_form_builder(); } /** * Gets extra field options. * * @since 6.19 * * @return string[] */ protected function extra_field_opts() { return array( 'gdpr_agreement_text' => __( 'I consent to having this website store my submitted information so they can respond to my inquiry.', 'formidable' ), ); } /** * Include the form builder file. * * @since 6.19 * * @return string */ protected function include_form_builder_file() { return FrmAppHelper::plugin_path() . self::VIEW_PATH; } /** * Include the front form file. * * @since 6.19 * * @return string */ protected function include_front_form_file() { return FrmAppHelper::plugin_path() . self::VIEW_PATH; } /** * Hide the field name/label if the GDPR field is disabled. * * @since 6.19 * * @param array $args The arguments. * @param string $html The HTML. * * @return string */ protected function before_replace_html_shortcodes( $args, $html ) { if ( FrmFieldGdprHelper::hide_gdpr_field() && ! current_user_can( 'frm_edit_forms' ) ) { return ''; } return $html; } /** * Make sure the GDPR field is required even if the required setting is disabled. * * @since 6.20 * * @param array $args * * @return array */ public function validate( $args ) { $errors = parent::validate( $args ); if ( ! $errors && ! FrmFieldGdprHelper::hide_gdpr_field() ) { $required = FrmField::get_option( $this->field, 'required' ); if ( ! $required && empty( $args['value'] ) ) { $frm_settings = FrmAppHelper::get_settings(); $errors[ 'field' . $args['id'] ] = str_replace( '[field_name]', is_object( $this->field ) ? $this->field->name : $this->field['name'], $frm_settings->blank_msg ); } } return $errors; } /** * Make sure the GDPR field is required even if the required setting is disabled. * * @since 6.20 * * @param bool $required * @param array $field * * @return bool */ public static function force_required_field( $required, $field ) { if ( ! $required && 'gdpr' === $field['type'] && ! FrmFieldGdprHelper::hide_gdpr_field() ) { $required = true; } return $required; } /** * Add the GDPR agreement text as an additional translatable string. * * @since 6.23 * * @return array */ public function translatable_strings() { $strings = parent::translatable_strings(); $strings[] = 'gdpr_agreement_text'; return $strings; } }