Server : Apache System : Linux ls31.server.ly 3.10.0-962.3.2.lve1.5.68.el7.x86_64 #1 SMP Wed Apr 6 11:12:23 UTC 2022 x86_64 User : medchoco ( 2906) PHP Version : 8.3.16 Disable Function : mail Directory : /home/medchoco/www/wp-content/plugins/mailchimp-for-wp/integrations/gravity-forms/ |
Upload File : |
<?php class MC4WP_Gravity_Forms_Field extends GF_Field { public $type = 'mailchimp'; /** * Returns the field markup; including field label, description, validation, and the form editor admin buttons. * * The {FIELD} placeholder will be replaced in GFFormDisplay::get_field_content with the markup returned by GF_Field::get_field_input(). * * @param string|array $value The field value. From default/dynamic population, $_POST, or a resumed incomplete submission. * @param bool $force_frontend_label Should the frontend label be displayed in the admin even if an admin label is configured. * @param array $form The Form Object currently being processed. * * @return string */ public function get_field_content( $value, $force_frontend_label, $form ) { $validation_message = ( $this->failed_validation && ! empty( $this->validation_message ) ) ? sprintf( "<div class='gfield_description validation_message'>%s</div>", $this->validation_message ) : ''; $is_form_editor = $this->is_form_editor(); $is_entry_detail = $this->is_entry_detail(); $is_admin = $is_form_editor || $is_entry_detail; $admin_buttons = $this->get_admin_buttons(); $description = $this->get_description( $this->description, 'gfield_description' ); if ( $this->is_description_above( $form ) ) { $clear = $is_admin ? "<div class='gf_clear'></div>" : ''; $field_content = sprintf( "%s%s{FIELD}%s$clear", $admin_buttons, $description, $validation_message ); } else { $field_content = sprintf( '%s{FIELD}%s%s', $admin_buttons, $description, $validation_message ); } return $field_content; } public function get_form_editor_field_title() { return esc_attr__( 'Mailchimp for WordPress', 'mailchimp-for-wp' ); } public function get_form_editor_field_settings() { return array( 'label_setting', 'description_setting', 'css_class_setting', 'mailchimp_list_setting', 'mailchimp_double_optin', 'mailchimp_precheck', 'rules_setting', ); } public function get_field_input( $form, $value = '', $entry = null ) { $form_id = absint( $form['id'] ); $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $id = $this->id; $field_id = $is_entry_detail || $is_form_editor || 0 === (int) $form_id ? "input_$id" : 'input_' . $form_id . "_$id"; $disabled_text = $is_form_editor ? 'disabled="disabled"' : ''; return sprintf( "<div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='%s'>%s</ul></div>", esc_attr( $field_id ), $this->get_checkbox_choices( $value, $disabled_text, $form_id ) ); } private function apply_mc4wp_options_filters( $options ) { $options = apply_filters( 'mc4wp_gravity-forms_integration_options', $options ); $options = apply_filters( 'mc4wp_integration_gravity-forms_options', $options ); return $options; } public function get_checkbox_choices( $value, $disabled_text, $form_id = 0 ) { $choices = ''; $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $options = array( 'label' => $this->get_field_label( false, $value ), 'precheck' => isset( $this->mailchimp_precheck ) ? $this->mailchimp_precheck : false, ); $options = $this->apply_mc4wp_options_filters( $options ); // generate html $choice = array( 'text' => $options['label'], 'value' => '1', 'isSelected' => $options['precheck'], ); $input_id = $this->id; if ( $is_entry_detail || $is_form_editor || 0 === (int) $form_id ) { $id = $this->id; } else { $id = $form_id . '_' . $this->id; } if ( ! isset( $_GET['gf_token'] ) && empty( $_POST ) && rgar( $choice, 'isSelected' ) ) { $checked = "checked='checked'"; } elseif ( is_array( $value ) && RGFormsModel::choice_value_match( $this, $choice, rgget( $input_id, $value ) ) ) { $checked = "checked='checked'"; } elseif ( ! is_array( $value ) && RGFormsModel::choice_value_match( $this, $choice, $value ) ) { $checked = "checked='checked'"; } else { $checked = ''; } $tabindex = $this->get_tabindex(); $choice_value = $choice['value']; $choice_value = esc_attr( $choice_value ); $choice_markup = "<li class='gchoice_{$id}'> <input name='input_{$input_id}' type='checkbox' value='{$choice_value}' {$checked} id='choice_{$id}' {$tabindex} {$disabled_text} /> <label for='choice_{$id}' id='label_{$id}'>{$choice['text']}</label> </li>"; $choices .= gf_apply_filters( array( 'gform_field_choice_markup_pre_render', $this->formId, $this->id, ), $choice_markup, $choice, $this, $value ); return gf_apply_filters( array( 'gform_field_choices', $this->formId, $this->id ), $choices, $this ); } }