File "FrmProAddressesController.php"
Full path: /home/bud/public_html/swamp/wp-admin/wp-content/plugins/formidable-pro/classes/controllers/FrmProAddressesController.php
File size: 5.57 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
class FrmProAddressesController extends FrmProComboFieldsController {
public static function show_in_form( $field, $field_name, $atts ) {
$errors = isset( $atts['errors'] ) ? $atts['errors'] : array();
$html_id = $atts['html_id'];
$defaults = self::empty_value_array();
self::fill_values( $field['value'], $defaults );
self::fill_values( $field['default_value'], $defaults );
$sub_fields = self::get_sub_fields( $field );
include( FrmProAppHelper::plugin_path() . '/classes/views/combo-fields/input.php' );
}
public static function add_optional_class( $class, $field ) {
$class .= ' frm_optional';
return $class;
}
public static function get_sub_fields( $field ) {
$fields = array(
'line1' => array(
'type' => 'text',
'classes' => '',
'label' => 1,
'atts' => array(
'autocomplete' => 'address-line1',
),
),
'line2' => array(
'type' => 'text',
'classes' => '',
'optional' => true,
'label' => 1,
'atts' => array(
'autocomplete' => 'address-line2',
),
),
'city' => array(
'type' => 'text',
'classes' => 'frm_third frm_first',
'label' => 1,
'atts' => array(
'autocomplete' => 'address-level2',
),
),
'state' => array(
'type' => 'text',
'classes' => 'frm_third',
'label' => 1,
'atts' => array(
'autocomplete' => 'address-level1',
),
),
'zip' => array(
'type' => 'text',
'classes' => 'frm_third',
'label' => 1,
'atts' => array(
'autocomplete' => 'postal-code',
),
),
);
if ( 'europe' === $field['address_type'] ) {
$city_field = $fields['city'];
unset( $fields['state'], $fields['city'] );
$fields['city'] = $city_field;
$fields['city']['classes'] = 'frm_third';
$fields['zip']['classes'] .= ' frm_first';
}
if ( $field['address_type'] == 'us' ) {
$fields['state']['type'] = 'select';
$fields['state']['options'] = FrmFieldsHelper::get_us_states();
} else if ( $field['address_type'] != 'generic' ) {
$fields['country'] = array(
'type' => 'select',
'classes' => '',
'label' => 1,
'options' => FrmFieldsHelper::get_countries(),
'atts' => array(
'autocomplete' => 'country-name',
),
);
}
// Include the placeholder with the sub field.
foreach ( $fields as $name => $f ) {
if ( isset( $field['placeholder'] ) && isset( $field['placeholder'][ $name ] ) ) {
$fields[ $name ]['placeholder'] = $field['placeholder'][ $name ];
}
}
/**
* Filter sub fields so an Address field can be customized.
*
* @since 5.2.06
*
* @param array $fields
* @param array $field
*/
$fields = apply_filters( 'frm_address_sub_fields', $fields, $field );
return $fields;
}
public static function add_csv_columns( $headings, $atts ) {
if ( $atts['field']->type == 'address' ) {
$values = self::empty_value_array();
foreach ( $values as $heading => $value ) {
$label = self::get_field_label( $atts['field'], $heading );
$headings[ $atts['field']->id . '_' . $heading ] = strip_tags( $label );
}
}
return $headings;
}
/**
* @return array Empty address data to use as defaults.
*/
public static function empty_value_array() {
/**
* @since 5.2.07
*
* @param array $empty_value_array array of empty address data.
*/
return apply_filters(
'frm_address_empty_value_array',
array(
'line1' => '',
'line2' => '',
'city' => '',
'state' => '',
'zip' => '',
'country' => '',
)
);
}
/**
* Get the label for the CSV
*
* @since 2.0.23
*/
private static function get_field_label( $field, $field_name ) {
$default_labels = self::default_labels();
$descriptions = array_keys( $default_labels );
$default_labels['line1'] = __( 'Line 1', 'formidable-pro' );
$default_labels['line2'] = __( 'Line 2', 'formidable-pro' );
$default_labels['country'] = __( 'Country', 'formidable-pro' );
$label = isset( $default_labels[ $field_name ] ) ? $default_labels[ $field_name ] : '';
if ( in_array( $field_name, $descriptions ) ) {
$saved_label = FrmField::get_option( $field, $field_name . '_desc' );
if ( ! empty( $saved_label ) ) {
$label = $saved_label;
}
}
if ( empty( $label ) ) {
$label = $field_name;
}
$label = $field->name . ' - ' . $label;
return $label;
}
private static function default_labels() {
$options = array(
'line1' => '',
'line2' => '',
'city' => __( 'City', 'formidable-pro' ),
'state' => __( 'State/Province', 'formidable-pro' ),
'zip' => __( 'Zip/Postal', 'formidable-pro' ),
'country' => __( 'Country', 'formidable-pro' ),
);
return $options;
}
/**
* @deprecated 4.0
*/
public static function form_builder_options( $field, $display, $values ) {
_deprecated_function( __FUNCTION__, '4.0', 'FrmProFieldAddress->show_primary_options' );
}
/**
* @deprecated 3.0
* @codeCoverageIgnore
*/
public static function show_in_form_builder( $field, $name = '', $null = null ) {
_deprecated_function( __METHOD__, '3.0', 'FrmFieldType::show_on_form_builder' );
$field_type = FrmFieldFactory::get_field_type( 'address', $field );
return $field_type->show_on_form_builder( $name );
}
/**
* @deprecated 3.0
* @codeCoverageIgnore
*/
public static function display_value( $value ) {
_deprecated_function( __FUNCTION__, '3.0', 'FrmProFieldAddress->get_display_value' );
$field_obj = FrmFieldFactory::get_field_type( 'address' );
return $field_obj->get_display_value( $value );
}
}