id_base,
__( 'Astra: Address', 'astra-widgets' ),
array(
'classname' => $this->id_base,
'description' => __( 'Display Address.', 'astra-widgets' ),
),
array(
'id_base' => $this->id_base,
)
);
add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
}
/**
* Register scripts
*
* @return void
*/
function register_scripts() {
/* Directory and Extension */
$file_prefix = ( SCRIPT_DEBUG ) ? '' : '.min';
$dir_name = ( SCRIPT_DEBUG ) ? 'unminified' : 'minified';
$js_uri = ASTRA_WIDGETS_URI . 'assets/js/' . $dir_name . '/';
$css_uri = ASTRA_WIDGETS_URI . 'assets/css/' . $dir_name . '/';
wp_register_style( 'astra-widgets-' . $this->id_base, $css_uri . 'astra-widget-address' . $file_prefix . '.css' );
}
/**
* Frontend setup
*
* @param array $args Widget arguments.
* @param array $instance Widget instance.
* @return void
*/
function _front_setup( $args, $instance ) {
// Set stored data.
$this->stored_data = $instance;
// Enqueue Scripts.
wp_enqueue_style( 'astra-widgets-' . $this->id_base );
// Enqueue dynamic Scripts.
wp_add_inline_style( 'astra-widgets-' . $this->id_base, $this->get_dynamic_css() );
}
/**
* Widget
*
* @param array $args Widget arguments.
* @param array $instance Widget instance.
* @return void
*/
function widget( $args, $instance ) {
$this->_front_setup( $args, $instance );
$title = apply_filters( 'widget_title', $instance['title'] );
$style = isset( $instance['style'] ) ? $instance['style'] : 'stack';
$social_icons = isset( $instance['display-icons'] ) ? $instance['display-icons'] : false;
$address = isset( $instance['address'] ) ? $instance['address'] : '';
$phone = isset( $instance['phone'] ) ? $instance['phone'] : '';
$fax = isset( $instance['fax'] ) ? $instance['fax'] : '';
$email = isset( $instance['email'] ) ? $instance['email'] : '';
// Before Widget.
echo $args['before_widget'];
if ( $title ) {
echo $args['before_title'] . $title . $args['after_title'];
} ?>
'text',
'id' => 'title',
'name' => __( 'Title:', 'astra-widgets' ),
'default' => ( isset( $instance['title'] ) && ! empty( $instance['title'] ) ) ? $instance['title'] : '',
),
array(
'name' => 'Style',
'id' => 'style',
'type' => 'select',
'default' => ( isset( $instance['style'] ) && ! empty( $instance['style'] ) ) ? $instance['style'] : 'stack',
'options' => array(
'inline' => __( 'Inline', 'astra-widgets' ),
'stack' => __( 'Stack', 'astra-widgets' ),
),
),
array(
'type' => 'checkbox',
'id' => 'display-icons',
'name' => __( 'Display Icons?', 'astra-widgets' ),
'default' => ( isset( $instance['display-icons'] ) && ! empty( $instance['display-icons'] ) ) ? $instance['display-icons'] : false,
),
array(
'type' => 'textarea',
'id' => 'address',
'name' => __( 'Address:', 'astra-widgets' ),
'default' => ( isset( $instance['address'] ) && ! empty( $instance['address'] ) ) ? $instance['address'] : '',
),
array(
'type' => 'text',
'id' => 'phone',
'name' => __( 'Phone:', 'astra-widgets' ),
'default' => ( isset( $instance['phone'] ) && ! empty( $instance['phone'] ) ) ? $instance['phone'] : '',
),
array(
'type' => 'text',
'id' => 'fax',
'name' => __( 'FAX:', 'astra-widgets' ),
'default' => ( isset( $instance['fax'] ) && ! empty( $instance['fax'] ) ) ? $instance['fax'] : '',
),
array(
'type' => 'text',
'id' => 'email',
'name' => __( 'Email:', 'astra-widgets' ),
'default' => ( isset( $instance['email'] ) && ! empty( $instance['email'] ) ) ? $instance['email'] : '',
),
array(
'type' => 'color',
'id' => 'icon_color',
'name' => __( 'Icon Color', 'astra-widgets' ),
'default' => ( isset( $instance['icon_color'] ) && ! empty( $instance['icon_color'] ) ) ? $instance['icon_color'] : '#fefefe',
),
array(
'type' => 'number',
'id' => 'space_btn_icon_text',
'name' => __( 'Space Between Icon & Text:', 'astra-widgets' ),
'unit' => 'Px',
'default' => ( isset( $instance['space_btn_icon_text'] ) && ! empty( $instance['space_btn_icon_text'] ) ) ? $instance['space_btn_icon_text'] : '',
),
array(
'type' => 'number',
'id' => 'space_btn_address_fields',
'name' => __( ' Space Between Address Fields:', 'astra-widgets' ),
'unit' => 'Px',
'default' => ( isset( $instance['space_btn_address_fields'] ) && ! empty( $instance['space_btn_address_fields'] ) ) ? $instance['space_btn_address_fields'] : '',
),
);
// Generate fields.
astra_generate_widget_fields( $this, $fields );
}
/**
* Dynamic CSS
*
* @return string
*/
function get_dynamic_css() {
$dynamic_css = '';
$instances = get_option( 'widget_' . $this->id_base );
$id_base = '#' . $this->id;
if ( array_key_exists( $this->number, $instances ) ) {
$instance = $instances[ $this->number ];
$icon_color = isset( $instance['icon_color'] ) ? $instance['icon_color'] : '';
$space_btn_icon_text = isset( $instance['space_btn_icon_text'] ) ? $instance['space_btn_icon_text'] : '';
$space_btn_address_fields = isset( $instance['space_btn_address_fields'] ) ? $instance['space_btn_address_fields'] : '';
$css_output = array(
$id_base . ' .widget-address-field svg' => array(
'fill' => esc_attr( $icon_color ),
),
$id_base . ' .widget-address .widget-address-field .address-meta' => array(
'margin-left' => esc_attr( $space_btn_icon_text ) . 'px',
),
$id_base . ' .widget-address .widget-address-field' => array(
'padding-top' => '0',
'padding-bottom' => esc_attr( $space_btn_address_fields ) . 'px',
),
$id_base . ' .address .widget-address .widget-address-field:last-child' => array(
'padding-bottom' => '0',
),
);
$dynamic_css = astra_widgets_parse_css( $css_output );
return $dynamic_css;
}
return $dynamic_css;
}
}
endif;