';
if ( '' !== $instance['address'] ) {
$showmap = $instance['showmap'];
$goodmap = isset( $instance['goodmap'] ) ? $instance['goodmap'] : $this->has_good_map( $instance );
if ( $showmap && true === $goodmap ) {
/**
* Set a Google Maps API Key.
*
* @since 4.1.0
*
* @param string $api_key Google Maps API Key
*/
$api_key = apply_filters( 'jetpack_google_maps_api_key', $instance['apikey'] );
echo $this->build_map( $instance['address'], $api_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} elseif ( $showmap && is_customize_preview() && true !== $goodmap ) {
printf(
'
%s',
esc_html( $instance['goodmap'] )
);
}
$map_link = $this->build_map_link( $instance['address'] );
printf(
'
',
esc_url( $map_link ),
str_replace( "\n", '
', esc_html( $instance['address'] ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
);
}
if ( '' !== $instance['phone'] ) {
if ( wp_is_mobile() ) {
echo '
';
} else {
echo '
' . esc_html( $instance['phone'] ) . '
';
}
}
if (
$instance['email']
&& is_email( trim( $instance['email'] ) )
) {
printf(
'
',
esc_html( $instance['email'] )
);
}
if ( '' !== $instance['hours'] ) {
printf(
'
%s
',
str_replace( "\n", '
', esc_html( $instance['hours'] ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
);
}
echo '
';
/**
* Fires at the end of Contact Info widget.
*
* @module widgets
*
* @since 3.9.2
*/
do_action( 'jetpack_contact_info_widget_end' );
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'contact_info' );
}
/**
* Deals with the settings when they are saved by the admin. Here is
* where any validation should be dealt with.
*
* @param array $new_instance New configuration values.
* @param array $old_instance Old configuration values.
*
* @return array
*/
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = wp_kses( $new_instance['title'], array() );
$instance['address'] = wp_kses( $new_instance['address'], array() );
$instance['phone'] = wp_kses( $new_instance['phone'], array() );
$instance['email'] = wp_kses( $new_instance['email'], array() );
$instance['hours'] = wp_kses( $new_instance['hours'], array() );
$instance['apikey'] = wp_kses( isset( $new_instance['apikey'] ) ? $new_instance['apikey'] : $old_instance['apikey'], array() );
if ( ! isset( $new_instance['showmap'] ) ) {
$instance['showmap'] = 0;
} else {
$instance['showmap'] = (int) $new_instance['showmap'];
}
$instance['goodmap'] = $this->update_goodmap( $old_instance, $instance );
return $instance;
}
/**
* Displays the form for this widget on the Widgets page of the WP Admin area.
*
* @param array $instance Instance configuration.
*
* @return string|void
*/
public function form( $instance ) {
$instance = wp_parse_args( $instance, $this->defaults() );
/** This filter is documented in modules/widgets/contact-info.php */
$apikey = apply_filters( 'jetpack_google_maps_api_key', $instance['apikey'] );
wp_enqueue_script(
'contact-info-admin',
Assets::get_file_url_for_environment(
'_inc/build/widgets/contact-info/contact-info-admin.min.js',
'modules/widgets/contact-info/contact-info-admin.js'
),
array( 'jquery' ),
20160727,
false
);
if ( is_customize_preview() ) {
$customize_contact_info_api_key_nonce = wp_create_nonce( 'customize_contact_info_api_key' );
wp_localize_script(
'contact-info-admin',
'contact_info_api_key_ajax_obj',
array( 'nonce' => $customize_contact_info_api_key_nonce )
);
}
?>
build_map( $instance['address'], $apikey ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} elseif ( true !== $instance['goodmap'] && ! empty( $instance['goodmap'] ) ) {
printf(
'%s',
esc_html( $instance['goodmap'] )
);
}
?>