Example #1
0
 /**
  * Register standard details to be translatable by WPML
  */
 function wpsight_wpml_standard_details_register()
 {
     if (!function_exists('icl_register_string')) {
         return false;
     }
     $details = wpsight_standard_details();
     foreach ($details as $detail) {
         $listing_detail = wpsight_get_standard_detail($detail['id']);
         icl_register_string(WPSIGHT_NAME . ' - ' . __('Listing Details', 'wpsight-wpml'), $detail['id'], $listing_detail['label']);
     }
     return false;
 }
Example #2
0
function wpsight_listing_details_shortcode($atts)
{
    $defaults = array('id' => get_the_ID(), 'detail_id' => '', 'before' => '', 'after' => '', 'wrap' => 'div');
    extract(shortcode_atts($defaults, $atts));
    // Create details
    $details = '';
    // Loop through standard details
    foreach (wpsight_standard_details() as $detail => $v) {
        // Don't show detail if label is emtpy in options
        $standard_details_option = wpsight_get_option($detail);
        // Set default value if option has not been set
        if (wpsight_get_option($detail) === false) {
            $standard_details_option = wpsight_get_option($detail, true);
        }
        if (empty($standard_details_option['label'])) {
            continue;
        }
        $value = get_post_meta($id, '_' . $detail, true);
        // Check if value is data key
        if (!empty($v['data'])) {
            $value = $v['data'][$value];
        }
        // Continue if no value
        if (empty($value)) {
            continue;
        }
        $details .= '<span class="listing-details-sc-detail ' . $detail . '">';
        $details .= '<span class="detail-label">' . $v['label'] . '</span>';
        $details .= '<span class="detail-value">' . $value . ' ' . wpsight_get_measurement_units($v['unit']) . '</span>';
        $details .= '</span><!-- .listing-details-sc-' . $detail . ' -->';
    }
    $output = sprintf('%1$s%3$s%2$s', $before, $after, $details);
    // Display an individual detail if required
    if (!empty($detail_id)) {
        $detail_data = wpsight_get_standard_detail($detail_id);
        $detail_single = '';
        $detail_single .= '<span class="listing-details-sc-detail ' . $detail_data['id'] . '">';
        $detail_single .= '<span class="label">' . $detail_data['label'] . '</span>';
        $detail_single .= '<span class="value">' . get_post_meta($id, '_' . $detail_data['id'], true) . ' ' . wpsight_get_measurement_units($detail_data['unit']) . '</span>';
        $detail_single .= '</span><!-- .listing-details-sc-' . $detail_data['id'] . ' -->';
        if (!empty($detail_single)) {
            $output = sprintf('%1$s%3$s%2$s', $before, $after, $detail_single);
        }
    }
    // Optionally wrap shortcode in HTML tags
    if (!empty($wrap) && $wrap != 'false' && in_array($wrap, array_keys(wp_kses_allowed_html('post')))) {
        $output = sprintf('<%2$s class="listing-details-sc">%1$s</%2$s>', $output, $wrap);
    }
    return apply_filters('wpsight_listing_details_shortcode', $output, $atts);
}
Example #3
0
 function wpsight_get_listing_details($post_id = '', $details_nr = '', $details = false)
 {
     // Get post ID from $post_id
     if (empty($post_id)) {
         $post_id = get_the_ID();
     }
     // If still empty, return false
     if (empty($post_id)) {
         return false;
     }
     // Get post custom data
     $post_custom = get_post_custom($post_id);
     // Get standard details
     $standard_details = wpsight_standard_details();
     // Create markup
     $listing_details = '<div class="listing-details-overview clearfix">';
     // Loop through details
     if (empty($details_nr)) {
         $details_nr = apply_filters('wpsight_get_listing_details_nr', 3);
     }
     // Check if specific details
     $details = apply_filters('wpsight_get_listing_details', $details);
     if (is_array($details)) {
         foreach ($details as $detail) {
             $pos = strpos($detail, '_');
             if ($pos !== false && $pos == 0) {
                 $detail = substr_replace($detail, '', $pos, strlen('_'));
             }
             if (!empty($post_custom['_' . $detail][0])) {
                 $i = 1;
                 // Get listing detail
                 $listing_detail = wpsight_get_standard_detail($detail);
                 $listing_details .= '<span class="listing-' . wpsight_dashes($detail) . ' listing-details-detail" title="' . $listing_detail['label'] . '">';
                 $listing_details .= $post_custom['_' . $detail][0] . ' ';
                 $listing_details .= wpsight_get_measurement_units($standard_details[$detail]['unit']);
                 $listing_details .= '</span><!-- .listing-' . wpsight_dashes($detail) . ' -->' . "\n";
                 $i++;
             }
         }
     } else {
         for ($i = 1; $i <= $details_nr; $i++) {
             if (!isset($post_custom['_details_' . $i][0])) {
                 continue;
             }
             $listing_detail_value = $post_custom['_details_' . $i][0];
             if (!empty($listing_detail_value)) {
                 // Get listing detail
                 $listing_detail = wpsight_get_standard_detail('details_' . $i);
                 $listing_details .= '<span class="listing-details-' . $i . ' listing-details-detail" title="' . $listing_detail['label'] . '">';
                 // Check if value is data key
                 if (!empty($listing_detail['data'])) {
                     $listing_detail_value = $listing_detail['data'][$listing_detail_value];
                 }
                 $listing_details .= $listing_detail_value . ' ';
                 $listing_details .= wpsight_get_measurement_units($standard_details['details_' . $i]['unit']);
                 $listing_details .= '</span><!-- .listing-details-' . $i . ' -->' . "\n";
             }
         }
     }
     // Display formatted listing price
     $listing_details .= '<span class="listing-price">' . wpsight_get_price($post_id) . '</span><!-- .listing-price -->' . "\n";
     // Close markup
     $listing_details .= '</div><!-- .listing-details -->';
     return apply_filters('wpsight_listing_details', $listing_details);
 }