Opal-Estate-Pro/templates/widgets/sameprice-properties.php

127 lines
4.3 KiB
PHP
Executable File

<?php
/**
* Same price.
*
* @author WpOpal Team <help@wpopal.com, info@wpopal.com>
* @copyright Copyright (C) 2015 wpopal.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* @website http://www.wpopal.com
* @support http://www.wpopal.com/questions/
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$args = [
'post_type' => 'opalestate_property',
'posts_per_page' => $num,
'post__not_in' => [ get_the_ID() ],
];
$price = get_post_meta( get_the_ID(), OPALESTATE_PROPERTY_PREFIX . 'price', true );
$status = wp_get_post_terms( get_the_ID(), 'opalestate_status' );
$args['meta_query'] = [];
$tax_query = [];
if ( ! is_wp_error( $status ) && $status ) {
$tax_query[] =
[
'taxonomy' => 'opalestate_status',
'field' => 'slug',
'terms' => $status[0]->slug,
];
}
if ( $tax_query ) {
$args['tax_query'] = [ 'relation' => 'AND' ];
$args['tax_query'] = array_merge( $args['tax_query'], $tax_query );
}
$search_min_price = floatval( $price ) - floatval( $range_price );
$search_max_price = floatval( $price ) + floatval( $range_price );
if ( $search_min_price != '' && $search_min_price != '' && is_numeric( $search_min_price ) && is_numeric( $search_max_price ) ) {
array_push( $args['meta_query'], [
'key' => OPALESTATE_PROPERTY_PREFIX . 'price',
'value' => [ $search_min_price, $search_max_price ],
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
] );
} elseif ( $search_min_price != '' && is_numeric( $search_min_price ) ) {
array_push( $args['meta_query'], [
'key' => OPALESTATE_PROPERTY_PREFIX . 'price',
'value' => $search_min_price,
'compare' => '>=',
'type' => 'NUMERIC',
] );
} elseif ( $search_max_price != '' && is_numeric( $search_max_price ) ) {
array_push( $args['meta_query'], [
'key' => OPALESTATE_PROPERTY_PREFIX . 'price',
'value' => $search_max_price,
'compare' => '<=',
'type' => 'NUMERIC',
] );
}
$query = Opalestate_Query::get_property_query( $args );
if ( $query->have_posts() ):
echo str_replace( 'widget-style', 'widget-style widget-danger', trim( $before_widget ) );
//Our variables from the widget settings.
$title = apply_filters( 'widget_title', $title );
if ( $title ) {
echo ( $before_title ) . trim( $title ) . $after_title;
}
?>
<div class="widget-content widget-properties">
<?php
while ( $query->have_posts() ): $query->the_post();
$property = opalesetate_property( get_the_ID() );
$meta = $property->get_meta_shortinfo();
?>
<article itemscope itemtype="http://schema.org/Property" <?php post_class(); ?>>
<div class="media">
<div class="media-left">
<?php if ( has_post_thumbnail() ) : ?>
<div class="property-box-image">
<a href="<?php the_permalink(); ?>" class="image-inner ">
<?php echo the_post_thumbnail( 'thumbnail' ); ?>
</a>
</div>
<?php endif; ?>
</div>
<div class="media-body">
<div class="entry-content">
<?php the_title( '<h6 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h6>' ); ?>
<div class="property-price">
<span class="text-primary"><?php echo opalestate_price_format( $property->get_price() ); ?></span>
<?php if ( $property->get_sale_price() ): ?>
<span class="property-saleprice">
<?php echo opalestate_price_format( $property->get_sale_price() ); ?>
</span>
<?php endif; ?>
<?php if ( $property->get_price_label() ): ?>
<span class="property-price-label">
<?php echo $property->get_price_label(); ?>
</span>
<?php endif; ?>
</div>
</div><!-- .entry-content -->
</div>
</div>
</article><!-- #post-## -->
<?php endwhile; ?>
</div>
<?php echo trim( $after_widget ); ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>