/** * 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; }
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); }
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); }