# propertyhive/2.3.1/includes/avada-widgets/property-features-shortcode.php

Property Hive, version 2.3.1. 78 lines.

- Page: https://pluginprobe.com/plugins/propertyhive/2.3.1/code/includes/avada-widgets/property-features-shortcode.php
- Raw: https://pluginprobe.com/plugins/propertyhive/2.3.1/raw/includes/avada-widgets/property-features-shortcode.php
- Modified: 2026-09-16T09:29:48+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/propertyhive/2.3.1/code/includes/avada-widgets/property-features-shortcode.php#L10-L20`.

```php
<?php

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}


add_shortcode( 'avada_property_features', function( $atts ) {
    $atts = shortcode_atts( array(
        'content_align'    => 'left',
        'fusion_font_family_features_font' => '',
        'fusion_font_variant_features_font' => '',
        'font_size'  => '',
        'letter_spacing'  => '',
        'text_transform'  => '',
        'line_height'  => '',
        'text_color'       => '',
        'show_title'    => '',
    ), $atts );

    if ( get_post_type( get_the_ID() ) != 'property' )
    {
    	return '';
    }

    fusion_element_rendering_elements( true );

    global $property;
    
    if ( empty($property) )
    {
        // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Shared frontend property global used by the Avada shortcode contract; changing $property would break the existing property context passed to these widgets.
        $property = new PH_Property(get_the_ID());
    }
    
    $style = Fusion_Builder_Element_Helper::get_font_styling( $atts, 'features_font' );

	if ( $atts['font_size'] ) {
		$style .= 'font-size:' . fusion_library()->sanitize->get_value_with_unit( $atts['font_size'] ) . ';';
	}

	if ( $atts['letter_spacing'] ) {
		$style .= 'letter-spacing:' . fusion_library()->sanitize->get_value_with_unit( $atts['letter_spacing'] ) . ';';
	}

	if ( ! empty( $atts['text_transform'] ) ) {
		$style .= 'text-transform:' . $atts['text_transform'] . ';';
	}

	if ( ! empty( $atts['content_align'] ) ) {
		$style .= 'text-align:' . $atts['content_align'] . ';';
	}

    ob_start();

    if ( $atts['show_title'] != 'yes' )
    {
?>
<style type="text/css">
.features h4 { display:none; }
</style>
<?php
    }

    // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- FusionBuilder::attributes() returns the complete HTML attribute fragment and escapes each attribute name and value.
    echo '<div ' . FusionBuilder::attributes( 'property-features-shortcode' ) . '>
        <div style="' . esc_attr( safecss_filter_attr( $style ) ) . '">';
        propertyhive_template_single_features();
    echo '
    	</div>
    </div>';

    $html = ob_get_clean();

    fusion_element_rendering_elements( false );

    return $html;
});
```
