/**
  * Calculates bundled product prices incl. or excl. tax depending on the 'woocommerce_tax_display_shop' setting.
  *
  * @param  WC_Product   $product    the product
  * @param  double       $price      the product price
  * @return double                   modified product price incl. or excl. tax
  */
 public static function get_product_display_price($product, $price)
 {
     if (!$price) {
         return $price;
     }
     if (get_option('woocommerce_tax_display_shop') === 'excl') {
         $product_price = $product->get_price_excluding_tax(1, $price);
     } else {
         $product_price = $product->get_price_including_tax(1, $price);
     }
     return $product_price;
 }
 /**
  * Returns the price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  * Should be safe to remove when we drop WC 2.2 compatibility
  *
  * @param  WC_Product $product the product object
  * @param  string     $price   to calculate, left blank to just use get_price()
  * @param  integer    $qty     passed on to get_price_including_tax() or get_price_excluding_tax()
  * @return string
  */
 public static function get_product_display_price($product, $price = '', $qty = 1)
 {
     if (SV_WC_Plugin_Compatibility::is_wc_version_gte_2_3()) {
         return $product->get_display_price($price, $qty);
     } else {
         if ($price === '') {
             $price = $product->get_price();
         }
         $tax_display_mode = get_option('woocommerce_tax_display_shop');
         $display_price = $tax_display_mode == 'incl' ? $product->get_price_including_tax($qty, $price) : $product->get_price_excluding_tax($qty, $price);
         return $display_price;
     }
 }
Example #3
1
function woocs_product($ID, $attr, $currency = true)
{
    if (class_exists('WC_Product')) {
        $product = new WC_Product($ID);
        if ($attr == 'price_tax_inc') {
            $p = round($product->get_price_including_tax(), 2);
        } elseif ($attr == 'get_price_excluding_tax') {
            $p = round($product->get_price_excluding_tax(), 2);
        } elseif ($attr == 'get_price') {
            $p = round($product->get_price(), 2);
        } elseif ($attr == 'get_sale_price') {
            $p = round($product->get_sale_price(), 2);
        } elseif ($attr == 'get_regular_price') {
            $p = round($product->get_regular_price(), 2);
        } elseif ($attr == 'get_price_html') {
            $p = strip_tags($product->get_price_html());
        } elseif ($attr == 'is_in_stock') {
            $p = $product->is_in_stock();
        }
    }
    return $p;
}
Example #4
1
 /**
  * Get the product row subtotal.
  *
  * Gets the tax etc to avoid rounding issues.
  *
  * When on the checkout (review order), this will get the subtotal based on the customer's tax rate rather than the base rate.
  *
  * @param WC_Product $_product
  * @param int $quantity
  * @return string formatted price
  */
 public function get_product_subtotal($_product, $quantity)
 {
     $price = $_product->get_price();
     $taxable = $_product->is_taxable();
     // Taxable
     if ($taxable) {
         if ($this->tax_display_cart == 'excl') {
             $row_price = $_product->get_price_excluding_tax($quantity);
             $product_subtotal = wc_price($row_price);
             if ($this->prices_include_tax && $this->tax_total > 0) {
                 $product_subtotal .= ' <small class="tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
             }
         } else {
             $row_price = $_product->get_price_including_tax($quantity);
             $product_subtotal = wc_price($row_price);
             if (!$this->prices_include_tax && $this->tax_total > 0) {
                 $product_subtotal .= ' <small class="tax_label">' . WC()->countries->inc_tax_or_vat() . '</small>';
             }
         }
         // Non-taxable
     } else {
         $row_price = $price * $quantity;
         $product_subtotal = wc_price($row_price);
     }
     return apply_filters('woocommerce_cart_product_subtotal', $product_subtotal, $_product, $quantity, $this);
 }
 /**
  * Get min/max composite price including tax.
  *
  * @return double
  */
 public function get_composite_price_including_tax($min_or_max = 'min')
 {
     if ($this->is_priced_per_product()) {
         if (!$this->is_synced()) {
             $this->sync_composite();
         }
         $property = $min_or_max . '_composite_price_incl_tax';
         if ($this->{$property} !== false) {
             return $this->{$property};
         }
         $price = $min_or_max === 'min' ? $this->min_composite_price : $this->max_composite_price;
         if ($price) {
             $this->{$property} = $this->get_price_including_tax(1, $this->get_base_price());
             foreach ($this->price_index['price'][$min_or_max] as $component_id => $product_id) {
                 $component_data = $this->get_component_data($component_id);
                 $item_qty = $component_data['optional'] === 'yes' && $min_or_max === 'min' ? 0 : $component_data['quantity_' . $min_or_max];
                 if ($item_qty) {
                     $composited_product = $this->get_composited_product($component_id, $product_id);
                     $this->{$property} += $item_qty * $composited_product->get_price_including_tax($min_or_max);
                 }
             }
             $price = $this->{$property};
         }
     } else {
         $price = parent::get_price_including_tax(1, parent::get_price());
     }
     return $price;
 }
 /**
  * Calculates bundled product prices incl. or excl. tax depending on the 'woocommerce_tax_display_shop' setting.
  *
  * @param  WC_Product   $product    the product
  * @param  double       $price      the product price
  * @return double                   modified product price incl. or excl. tax
  */
 function get_product_price_incl_or_excl_tax($product, $price)
 {
     if ($price == 0) {
         return $price;
     }
     if ($this->wc_option_tax_display_shop == 'excl') {
         $product_price = $product->get_price_excluding_tax(1, $price);
     } else {
         $product_price = $product->get_price_including_tax(1, $price);
     }
     return $product_price;
 }
/**
* Get the product row price per item.
*
* @param WC_Product $_product
* @return string formatted price
*/
function get_quotelist_product_price($_product)
{
    if (get_option('woocommerce_display_cart_prices_excluding_tax') == 'yes') {
        $product_price = $_product->get_price_excluding_tax();
    } else {
        $product_price = $_product->get_price_including_tax();
    }
    //return array($product_price,apply_filters( 'woocommerce_cart_product_price', wc_price( $product_price ), $_product ));
    return (double) $product_price;
}
 /**
  * Get the shop price of a product incl or excl tax, depending on the 'woocommerce_tax_display_shop' setting.
  *
  * @param  WC_Product $product
  * @param  double $price
  * @return double
  */
 public function get_composited_product_price($product, $price = '')
 {
     if ($price === '') {
         $price = $product->get_price();
     }
     if ($this->wc_option_tax_display_shop === 'excl') {
         $product_price = $product->get_price_excluding_tax(1, $price);
     } else {
         $product_price = $product->get_price_including_tax(1, $price);
     }
     return $product_price;
 }
Example #9
0
 /**
  * Getter for min_bundle_price_incl_tax.
  *
  * @return double
  */
 public function get_min_bundle_price_incl_tax()
 {
     if ($this->is_priced_per_product()) {
         if (!$this->is_synced()) {
             $this->sync_bundle();
         }
         $price = $this->min_bundle_price_incl_tax;
     } else {
         $price = parent::get_price_including_tax(1, parent::get_price());
     }
     return $price;
 }
 /**
  * Bundle price including tax.
  *
  * @return double
  */
 public function get_bundle_price_including_tax($min_or_max = 'min')
 {
     if ($this->is_priced_per_product()) {
         if (!$this->is_synced()) {
             $this->sync_bundle();
         }
         $property = $min_or_max . '_bundle_price_incl_tax';
         if ($this->{$property} !== false) {
             return $this->{$property};
         }
         $price = $min_or_max === 'min' ? $this->min_bundle_price : $this->max_bundle_price;
         if ($price) {
             $this->{$property} = $this->get_price_including_tax(1, $this->get_base_price());
             foreach ($this->bundled_items as $bundled_item) {
                 $bundled_item_qty = $this->bundled_quantities_index[$min_or_max][$bundled_item->item_id];
                 if ($bundled_item_qty) {
                     $this->{$property} = $this->{$property} + $bundled_item_qty * $bundled_item->get_bundled_item_price_including_tax($min_or_max);
                 }
             }
             $price = $this->{$property};
         }
     } else {
         $price = parent::get_price_including_tax(1, parent::get_price());
     }
     return $price;
 }
 /**
  * Adjust discounted product price HTML
  *
  * @since 1.3.0
  * @param string $html
  * @param WC_Product $product
  * @return float|string
  */
 public function on_price_html($html, $product)
 {
     /**
      * Controls whether or not member prices should use discount format when displayed
      *
      * @since 1.3.0
      * @param bool $use_discount_format Defaults to true
      */
     if (!apply_filters('wc_memberships_member_prices_use_discount_format', true)) {
         return $html;
     }
     $tax_display_mode = get_option('woocommerce_tax_display_shop');
     $this->disable_price_adjustments();
     $base_price = 'incl' == $tax_display_mode ? $product->get_price_including_tax() : $product->get_price_excluding_tax();
     $product_id = $product->is_type('variation') ? $product->variation_id : $product->id;
     $this->enable_price_adjustments();
     if (!$this->has_discounted_price($base_price, $product_id)) {
         return $html;
     }
     /**
      * Controls whether or not member prices should display sale prices as well
      *
      * @since 1.3.0
      * @param bool $display_sale_price Defaults to false
      */
     $display_sale_price = apply_filters('wc_memberships_member_prices_display_sale_price', false);
     add_filter('woocommerce_get_variation_prices_hash', array($this, 'nonmember_variation_prices_hash'), 10, 3);
     if (!$display_sale_price) {
         add_filter('woocommerce_product_is_on_sale', array($this, 'disable_sale_price'));
     }
     $this->disable_price_adjustments();
     $this->disable_price_html_adjustments();
     $_html = $product->get_price_html();
     $this->enable_price_adjustments();
     $this->enable_price_html_adjustments();
     remove_filter('woocommerce_get_variation_prices_hash', array($this, 'nonmember_variation_prices_hash'));
     if (!$display_sale_price) {
         remove_filter('woocommerce_product_is_on_sale', array($this, 'disable_sale_price'));
     }
     if ($html != $_html) {
         $html = '<del>' . $_html . '</del> <ins> ' . $html . '</ins>';
     }
     return $html;
 }
 /**
  * Get the shop price of a product incl or excl tax, depending on the 'woocommerce_tax_display_shop' setting.
  *
  * @param  WC_Product $product
  * @param  double $price
  * @return double
  */
 public function get_composited_product_price($product, $price = '')
 {
     if (!$price) {
         return $price;
     }
     if (wc_cp_tax_display_shop() === 'excl') {
         $product_price = $product->get_price_excluding_tax(1, $price);
     } else {
         $product_price = $product->get_price_including_tax(1, $price);
     }
     return $product_price;
 }
    public function insert_meta_tags()
    {
        global $webdados_fb, $wp_query;
        //Also set Title Tag? - Needed??
        $fb_set_title_tag = 0;
        //Init values
        $fb_locale = '';
        $fb_title = '';
        $fb_url = '';
        $fb_desc = '';
        $fb_image = '';
        $fb_type = 'article';
        $fb_author = '';
        $fb_author_meta = '';
        $fb_author_linkrelgp = '';
        $fb_author_twitter = '';
        $fb_article_pub_date = '';
        $fb_article_mod_date = '';
        $fb_image_additional = array();
        $fb_additional_tags = array('name' => array(), 'property' => array());
        $fb_publisher = trim($this->options['fb_publisher']);
        $fb_publisher_schema = trim($this->options['fb_publisher_schema']);
        $fb_publisher_twitteruser = trim($this->options['fb_publisher_twitteruser']);
        //Homepage Description
        switch ($this->options['fb_desc_homepage']) {
            case 'custom':
                $fb_desc_homepage = $this->options['fb_desc_homepage_customtext'];
                //WPML?
                if ($webdados_fb->is_wpml_active()) {
                    global $sitepress;
                    if (ICL_LANGUAGE_CODE != $sitepress->get_default_language()) {
                        $fb_desc_homepage = icl_t('wd-fb-og', 'wd_fb_og_desc_homepage_customtext', $fb_desc_homepage);
                    }
                }
                break;
            default:
                $fb_desc_homepage = get_bloginfo('description');
                break;
        }
        //Open tag
        $html = '
<!-- START - ' . WEBDADOS_FB_PLUGIN_NAME . ' ' . WEBDADOS_FB_VERSION . ' -->
';
        if (is_singular()) {
            global $post;
            // Title
            //It's a Post or a Page or an attachment page - It can also be the homepage if it's set as a page
            $fb_title = esc_attr(wp_strip_all_tags(stripslashes($post->post_title), true));
            //SubHeading
            if (isset($this->options['fb_show_subheading']) && intval($this->options['fb_show_subheading']) == 1 && $webdados_fb->is_subheading_plugin_active()) {
                if (isset($this->options['fb_subheading_position']) && $this->options['fb_subheading_position'] == 'before') {
                    $fb_title = trim(trim(get_the_subheading()) . ' - ' . trim($fb_title), ' -');
                } else {
                    $fb_title = trim(trim($fb_title) . ' - ' . trim(get_the_subheading()), ' -');
                }
            }
            // URL
            $fb_url = get_permalink();
            // Type if it's a homepage page
            if (is_front_page()) {
                /* Fix homepage type when it's a static page */
                $fb_url = get_option('home') . (intval($this->options['fb_url_add_trailing']) == 1 ? '/' : '');
                $fb_type = trim($this->options['fb_type_homepage'] == '' ? 'website' : $this->options['fb_type_homepage']);
            }
            // Description
            if (trim($post->post_excerpt) != '') {
                //If there's an excerpt that's what we'll use
                $fb_desc = trim($post->post_excerpt);
            } else {
                //If not we grab it from the content
                $fb_desc = trim($post->post_content);
            }
            // Image
            if (intval($this->options['fb_image_show']) == 1 || intval($this->options['fb_image_show_schema']) == 1 || intval($this->options['fb_image_show_twitter']) == 1) {
                $fb_image = $this->get_post_image();
            }
            // Author
            $author_id = $post->post_author;
            if ($author_id > 0 && !(is_page() && intval($this->options['fb_author_hide_on_pages']) == 1)) {
                $fb_author = get_the_author_meta('facebook', $author_id);
                $fb_author_meta = get_the_author_meta('display_name', $author_id);
                $fb_author_linkrelgp = get_the_author_meta('googleplus', $author_id);
                $fb_author_twitter = get_the_author_meta('twitter', $author_id);
            }
            //Published and Modified time - We should check this out and maybe have it for any kind of post...
            if (is_singular('post')) {
                $fb_article_pub_date = get_the_date('c');
                $fb_article_mod_date = get_the_modified_date('c');
            } else {
                //Reset dates show because we're not on posts
                $this->options['fb_article_dates_show'] = 0;
            }
            //Sections
            if (is_singular('post')) {
                $cats = get_the_category();
                if (!is_wp_error($cats) && (is_array($cats) && count($cats) > 0)) {
                    $fb_sections = array();
                    foreach ($cats as $cat) {
                        $fb_sections[] = $cat->name;
                    }
                }
            } else {
                $this->options['fb_article_sections_show'] = 0;
            }
            // Business Directory Plugin
            if (isset($this->options['fb_show_businessdirectoryplugin']) && $webdados_fb->is_business_directory_active()) {
                global $wpbdp;
                $bdp_action = wpbdp_current_action();
                $bdp_disable_cpt = wpbdp_get_option('disable-cpt');
                $current_view_object = $wpbdp->dispatcher->current_view_object();
                switch ($bdp_action) {
                    case 'show_listing':
                        $fb_title = trim(esc_attr(wp_strip_all_tags(stripslashes($this->post->post_title), true)) . ' - ' . $fb_title, ' -');
                        $fb_set_title_tag = 1;
                        $fb_url = get_permalink($this->post->ID);
                        if (trim($this->post->post_excerpt) != '') {
                            //If there's an excerpt that's what we'll use
                            $fb_desc = trim($this->post->post_excerpt);
                        } else {
                            //If not we grab it from the content
                            $fb_desc = trim($this->post->post_content);
                        }
                        if (intval($this->options['fb_image_show']) == 1 || intval($this->options['fb_image_show_schema']) == 1 || intval($this->options['fb_image_show_twitter']) == 1) {
                            $thumbdone = false;
                            if (intval($this->options['fb_image_use_featured']) == 1) {
                                //Featured
                                if ($id_attachment = get_post_thumbnail_id($this->post->ID)) {
                                    //There's a featured/thumbnail image for this listing
                                    $fb_image = wp_get_attachment_url($id_attachment, false);
                                    $thumbdone = true;
                                } else {
                                }
                            }
                            if (!$thumbdone) {
                                //Main image loaded
                                if ($thumbnail_id = wpbdp_listings_api()->get_thumbnail_id($this->post->ID)) {
                                    $fb_image = wp_get_attachment_url($thumbnail_id, false);
                                    $thumbdone = true;
                                }
                            }
                        }
                }
            }
            // WooCommerce
            if ($webdados_fb->is_woocommerce_active() && is_product()) {
                $fb_type = 'product';
                $product = new WC_Product($post->ID);
                //Price
                $fb_additional_tags['property']['og_price_amount'] = array($product->get_price_including_tax());
                if (function_exists('get_woocommerce_currency')) {
                    $fb_additional_tags['property']['og_price_currency'] = array(get_woocommerce_currency());
                }
                $fb_additional_tags['name']['twitter_label1'] = array(__('Price', 'wd-fb-og'));
                if (function_exists('get_woocommerce_currency')) {
                    $fb_additional_tags['name']['twitter_data1'] = array($product->get_price_including_tax() . ' ' . get_woocommerce_currency());
                }
                //Additional product images?
                if (intval($this->options['fb_image_show']) == 1 && $this->options['fb_wc_useproductgallery'] == 1) {
                    if ($attachment_ids = $product->get_gallery_attachment_ids()) {
                        foreach ($attachment_ids as $attachment_id) {
                            if ($image_link = wp_get_attachment_url($attachment_id)) {
                                if (trim($image_link) != '') {
                                    $fb_image_additional[] = array('fb_image' => trim($image_link), 'png_overlay' => intval($this->options['fb_wc_usepg_png_overlay']) ? true : false);
                                }
                            }
                        }
                    }
                }
            }
        } else {
            //Other pages - Defaults
            $fb_title = esc_attr(wp_strip_all_tags(stripslashes(get_bloginfo('name')), true));
            $fb_url = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
            //Not really canonical but will work for now
            $fb_image = trim($this->options['fb_image']);
            $this->options['fb_article_sections_show'] = 0;
            $this->options['fb_article_dates_show'] = 0;
            $this->options['fb_author_show'] = 0;
            $this->options['fb_author_show_meta'] = 0;
            $this->options['fb_author_show_linkrelgp'] = 0;
            $this->options['fb_author_show_twitter'] = 0;
            $this->options['fb_author_show_twitter'] = 0;
            //Category
            if (is_category()) {
                $fb_title = esc_attr(wp_strip_all_tags(stripslashes(single_cat_title('', false)), true));
                $term = $wp_query->get_queried_object();
                $fb_url = get_term_link($term, $term->taxonomy);
                $cat_desc = trim(esc_attr(wp_strip_all_tags(stripslashes(category_description()), true)));
                if (trim($cat_desc) != '') {
                    $fb_desc = $cat_desc;
                }
            } else {
                if (is_tag()) {
                    $fb_title = esc_attr(wp_strip_all_tags(stripslashes(single_tag_title('', false)), true));
                    $term = $wp_query->get_queried_object();
                    $fb_url = get_term_link($term, $term->taxonomy);
                    $tag_desc = trim(esc_attr(wp_strip_all_tags(stripslashes(tag_description()), true)));
                    if (trim($tag_desc) != '') {
                        $fb_desc = $tag_desc;
                    }
                } else {
                    if (is_tax()) {
                        $fb_title = esc_attr(wp_strip_all_tags(stripslashes(single_term_title('', false)), true));
                        $term = $wp_query->get_queried_object();
                        $fb_url = get_term_link($term, $term->taxonomy);
                        $tax_desc = trim(esc_attr(wp_strip_all_tags(stripslashes(term_description()), true)));
                        if (trim($tax_desc) != '') {
                            $fb_desc = $tag_desc;
                        }
                        //WooCommerce
                        if ($webdados_fb->is_woocommerce_active() && intval($this->options['fb_wc_usecategthumb']) == 1 && is_product_category()) {
                            if (intval($this->options['fb_image_show']) == 1 || intval($this->options['fb_image_show_schema']) == 1 || intval($this->options['fb_image_show_twitter']) == 1) {
                                if ($thumbnail_id = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true)) {
                                    if ($image = wp_get_attachment_url($thumbnail_id)) {
                                        $fb_image = $image;
                                    }
                                }
                            }
                        }
                    } else {
                        if (is_search()) {
                            $fb_title = esc_attr(wp_strip_all_tags(stripslashes(__('Search for', 'wd-fb-og') . ' "' . get_search_query() . '"'), true));
                            $fb_url = get_search_link();
                        } else {
                            if (is_author()) {
                                $fb_title = esc_attr(wp_strip_all_tags(stripslashes(get_the_author_meta('display_name', get_query_var('author'))), true));
                                $fb_url = get_author_posts_url(get_query_var('author'), get_query_var('author_name'));
                            } else {
                                if (is_archive()) {
                                    if (is_day()) {
                                        $fb_title = esc_attr(wp_strip_all_tags(stripslashes(get_query_var('day') . ' ' . single_month_title(' ', false) . ' ' . __('Archives', 'wd-fb-og')), true));
                                        $fb_url = get_day_link(get_query_var('year'), get_query_var('monthnum'), get_query_var('day'));
                                    } else {
                                        if (is_month()) {
                                            $fb_title = esc_attr(wp_strip_all_tags(stripslashes(single_month_title(' ', false) . ' ' . __('Archives', 'wd-fb-og')), true));
                                            $fb_url = get_month_link(get_query_var('year'), get_query_var('monthnum'));
                                        } else {
                                            if (is_year()) {
                                                $fb_title = esc_attr(wp_strip_all_tags(stripslashes(get_query_var('year') . ' ' . __('Archives', 'wd-fb-og')), true));
                                                $fb_url = get_year_link(get_query_var('year'));
                                            }
                                        }
                                    }
                                } else {
                                    if (is_front_page()) {
                                        $fb_url = get_option('home') . (intval($this->options['fb_url_add_trailing']) == 1 ? '/' : '');
                                        $fb_type = trim($this->options['fb_type_homepage'] == '' ? 'website' : $this->options['fb_type_homepage']);
                                        $fb_desc = $fb_desc_homepage;
                                    } else {
                                        //Others... Defaults already set up there
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        //og:type for WPML root page?
        if ($webdados_fb->is_wpml_active()) {
            if (class_exists('WPML_Root_Page')) {
                if (WPML_Root_Page::is_current_request_root()) {
                    $fb_type = trim($this->options['fb_type_homepage'] == '' ? 'website' : $this->options['fb_type_homepage']);
                }
            }
        }
        //Default description, if empty until now
        if (trim($fb_desc) == '') {
            switch ($this->options['fb_desc_default_option']) {
                case 'custom':
                    $fb_desc = $this->options['fb_desc_default'];
                    //WPML?
                    if ($webdados_fb->is_wpml_active()) {
                        global $sitepress;
                        if (ICL_LANGUAGE_CODE != $sitepress->get_default_language()) {
                            $fb_desc = icl_t('wd-fb-og', 'wd_fb_og_fb_desc_default', $fb_desc);
                        }
                    }
                    break;
                default:
                    $fb_desc = $fb_desc_homepage;
                    break;
            }
        }
        //Trim description
        $fb_desc = trim(str_replace('&nbsp;', ' ', $fb_desc));
        //Non-breaking spaces are usefull on a meta description. We'll just convert them to normal spaces to really trim it
        $fb_desc = trim(intval($this->options['fb_desc_chars']) > 0 ? mb_substr(wp_strip_all_tags(strip_shortcodes(stripslashes($fb_desc), true)), 0, intval($this->options['fb_desc_chars'])) : wp_strip_all_tags(strip_shortcodes(stripslashes($fb_desc), true)));
        //YOAST SEO?
        if ($this->options['fb_show_wpseoyoast'] == 1) {
            if ($webdados_fb->is_yoast_seo_active()) {
                $wpseo = WPSEO_Frontend::get_instance();
                //Title
                $fb_title_temp = $wpseo->title(false);
                $fb_title = wp_strip_all_tags(trim($fb_title_temp) != '' ? trim($fb_title_temp) : $fb_title, true);
                //Title - SubHeading plugin
                if ($fb_title_temp != '' && $this->options['fb_show_subheading'] == 1) {
                    if ($webdados_fb->is_subheading_plugin_active()) {
                        if (isset($this->options['fb_subheading_position']) && $this->options['fb_subheading_position'] == 'before') {
                            $fb_title = trim(trim(get_the_subheading()) . ' - ' . trim($fb_title), ' -');
                        } else {
                            $fb_title = trim(trim($fb_title) . ' - ' . trim(get_the_subheading()), ' -');
                        }
                    }
                }
                //URL
                $fb_url_temp = $wpseo->canonical(false);
                $fb_url = wp_strip_all_tags(trim($fb_url_temp) != '' ? trim($fb_url_temp) : $fb_url, true);
                //Description
                $fb_desc_temp = $wpseo->metadesc(false);
                $fb_desc = wp_strip_all_tags(trim($fb_desc_temp) != '' ? trim($fb_desc_temp) : $fb_desc, true);
            }
        }
        //All in One SEO Pack?
        if ($this->options['fb_show_aioseop'] == 1) {
            if ($webdados_fb->is_aioseop_active()) {
                global $aiosp;
                //Title - Why are we getting the first post title on archives and homepage...?!?
                $fb_title_temp = $aiosp->orig_title;
                $fb_title = wp_strip_all_tags(trim($fb_title_temp) != '' ? trim($fb_title_temp) : $fb_title, true);
                //Title - SubHeading plugin
                if ($fb_title_temp != '' && $this->options['fb_show_subheading'] == 1) {
                    if ($webdados_fb->is_subheading_plugin_active()) {
                        if (isset($this->options['fb_subheading_position']) && $this->options['fb_subheading_position'] == 'before') {
                            $fb_title = trim(trim(get_the_subheading()) . ' - ' . trim($fb_title), ' -');
                        } else {
                            $fb_title = trim(trim($fb_title) . ' - ' . trim(get_the_subheading()), ' -');
                        }
                    }
                }
                //URL - See aioseop_class.php 3898 - We have a problem because wp_query is not the same right now
                /*$fb_url_temp = '';
                				$aioseop_options = get_option( 'aioseop_options' );
                				$opts = $aiosp->meta_opts;
                				var_dump($wp_query);
                				$show_page = true;
                				if ( ! empty( $aioseop_options['aiosp_no_paged_canonical_links'] ) ) {
                					$show_page = false;
                				}
                				if ( $aioseop_options['aiosp_can'] ) {
                					if ( ! empty( $aioseop_options['aiosp_customize_canonical_links'] ) && ! empty( $opts['aiosp_custom_link'] ) ) {
                						$fb_url_temp = $opts['aiosp_custom_link'];
                					}
                					if ( empty( $url ) ) {
                						$fb_url_temp = $aiosp->aiosp_mrt_get_url( $wp_query, $show_page );
                					}
                		
                					$fb_url_temp = $aiosp->validate_url_scheme( $fb_url_temp );
                		
                					$fb_url_temp = apply_filters( 'aioseop_canonical_url', $fb_url_temp );
                				}
                				var_dump($fb_url_temp);
                				$fb_url = wp_strip_all_tags( trim($fb_url_temp)!='' ? trim($fb_url_temp) : $fb_url, true);*/
                //Description - Why are we getting the first post description on archives and homepage...?!?
                if (is_home() && !is_front_page()) {
                    $post = aiosp_common::get_blog_page();
                } else {
                    $post = $aiosp->get_queried_object();
                }
                $fb_desc_temp = apply_filters('aioseop_description', $aiosp->get_main_description($post));
                $fb_desc = wp_strip_all_tags(trim($fb_desc_temp) != '' ? trim($fb_desc_temp) : $fb_desc, true);
            }
        }
        //Apply Filters
        $fb_locale = apply_filters('fb_og_locale', $fb_locale);
        $fb_title = apply_filters('fb_og_title', $fb_title);
        $fb_url = apply_filters('fb_og_url', $fb_url);
        $fb_type = apply_filters('fb_og_type', $fb_type);
        $fb_desc = apply_filters('fb_og_desc', $fb_desc);
        $fb_image = apply_filters('fb_og_image', $fb_image);
        $fb_image_additional = apply_filters('fb_og_image_additional', $fb_image_additional);
        //Image size
        $fb_image_size = false;
        if (intval($this->options['fb_image_show']) == 1 && trim($fb_image) != '') {
            if (intval($this->options['fb_image_size_show']) == 1) {
                if (isset($this->image_size) && is_array($this->image_size)) {
                    //Already fetched
                    $fb_image_size = $this->image_size;
                } else {
                    $fb_image_size = $this->get_open_graph_image_size($fb_image);
                }
            }
        } else {
            $this->options['fb_image_show'] = 0;
        }
        //Image overlay - Single?
        if (intval($this->options['fb_image_show']) == 1 && intval($this->options['fb_image_overlay']) == 1 && apply_filters('fb_og_image_overlay', true, $fb_image)) {
            //Single
            $temp_fb_image_overlay = $this->get_image_with_overlay($fb_image);
            if ($temp_fb_image_overlay['overlay']) {
                $fb_image = $temp_fb_image_overlay['fb_image'];
                //We know the exact size now. We better just show it, right?
                $this->options['fb_image_size_show'] = 1;
                $fb_image_size = array(WEBDADOS_FB_W, WEBDADOS_FB_H);
            }
            //Additional
            if (isset($fb_image_additional) && is_array($fb_image_additional) && count($fb_image_additional) > 0) {
                foreach ($fb_image_additional as $key => $value) {
                    if ($value['png_overlay']) {
                        $temp_fb_image_overlay = $this->get_image_with_overlay($value['fb_image']);
                        if ($temp_fb_image_overlay['overlay']) {
                            $fb_image_additional[$key]['fb_image'] = $temp_fb_image_overlay['fb_image'];
                        }
                    }
                }
            }
        }
        //No spaces on URLs
        if (isset($fb_url) && trim($fb_url) != '') {
            $fb_url = str_replace(' ', '%20', trim($fb_url));
        }
        if (isset($fb_publisher) && trim($fb_publisher) != '') {
            $fb_publisher = str_replace(' ', '%20', trim($fb_publisher));
        }
        if (isset($fb_publisher_schema) && trim($fb_publisher_schema) != '') {
            $fb_publisher_schema = str_replace(' ', '%20', trim($fb_publisher_schema));
        }
        if (isset($fb_author) && trim($fb_author) != '') {
            $fb_author = str_replace(' ', '%20', trim($fb_author));
        }
        if (isset($fb_author_linkrelgp) && trim($fb_author_linkrelgp) != '') {
            $fb_author_linkrelgp = str_replace(' ', '%20', trim($fb_author_linkrelgp));
        }
        if (isset($fb_image) && trim($fb_image) != '') {
            $fb_image = str_replace(' ', '%20', trim($fb_image));
        }
        if (isset($fb_image_additional) && is_array($fb_image_additional) && count($fb_image_additional)) {
            foreach ($fb_image_additional as $key => $value) {
                $fb_image_additional[$key]['fb_image'] = str_replace(' ', '%20', trim($value['fb_image']));
            }
        }
        //If there's still no description let's just add the title as a last resort
        if (trim($fb_desc) == '') {
            $fb_desc = $fb_title;
        }
        //Print tags
        // Facebook
        $html .= ' <!-- Facebook Open Graph -->
';
        //Locale
        if (intval($this->options['fb_locale_show']) == 1) {
            $html .= '  <meta property="og:locale" content="' . trim(esc_attr(trim($this->options['fb_locale']) != '' ? trim($this->options['fb_locale']) : trim(get_locale()))) . '"/>
';
        }
        //Site name
        if (intval($this->options['fb_sitename_show']) == 1) {
            $html .= '  <meta property="og:site_name" content="' . trim(esc_attr(get_bloginfo('name'))) . '"/>
';
        }
        //Title
        if (intval($this->options['fb_title_show']) == 1 && trim($fb_title) != '') {
            $html .= '  <meta property="og:title" content="' . trim(esc_attr($fb_title)) . '"/>
';
        }
        //URL
        if (intval($this->options['fb_url_show']) == 1 && trim($fb_url) != '') {
            $html .= '  <meta property="og:url" content="' . trim(esc_attr($fb_url)) . '"/>
';
        }
        //Type
        if (intval($this->options['fb_type_show']) == 1 && trim($fb_type) != '') {
            $html .= '  <meta property="og:type" content="' . trim(esc_attr($fb_type)) . '"/>
';
        }
        //Description
        if (intval($this->options['fb_desc_show']) == 1 && trim($fb_desc) != '') {
            $html .= '  <meta property="og:description" content="' . trim(esc_attr($fb_desc)) . '"/>
';
        }
        //Image
        if (intval($this->options['fb_image_show']) == 1 && trim($fb_image) != '') {
            $html .= '  <meta property="og:image" content="' . trim(esc_attr($fb_image)) . '"/>
';
        }
        //Additional Images
        if (intval($this->options['fb_image_show']) == 1 && isset($fb_image_additional) && is_array($fb_image_additional) && count($fb_image_additional) > 0) {
            foreach ($fb_image_additional as $fb_image_additional_temp) {
                $html .= '  <meta property="og:image" content="' . trim(esc_attr($fb_image_additional_temp['fb_image'])) . '"/>
';
            }
        } else {
            //Image Size - We only show the image size if we only have one image
            if (intval($this->options['fb_image_size_show']) == 1 && isset($fb_image_size) && is_array($fb_image_size)) {
                $html .= '  <meta property="og:image:width" content="' . intval(esc_attr($fb_image_size[0])) . '"/>
  <meta property="og:image:height" content="' . intval(esc_attr($fb_image_size[1])) . '"/>
';
            }
        }
        //Dates
        if (intval($this->options['fb_article_dates_show']) == 1 && trim($fb_article_pub_date) != '') {
            $html .= '  <meta property="article:published_time" content="' . trim(esc_attr($fb_article_pub_date)) . '"/>
';
        }
        if (intval($this->options['fb_article_dates_show']) == 1 && trim($fb_article_mod_date) != '') {
            $html .= '  <meta property="article:modified_time" content="' . trim(esc_attr($fb_article_mod_date)) . '" />
  <meta property="og:updated_time" content="' . trim(esc_attr($fb_article_mod_date)) . '" />
';
        }
        //Sections
        if (intval($this->options['fb_article_sections_show']) == 1 && isset($fb_sections) && is_array($fb_sections) && count($fb_sections) > 0) {
            foreach ($fb_sections as $fb_section) {
                $html .= '  <meta property="article:section" content="' . trim(esc_attr($fb_section)) . '"/>
';
            }
        }
        //Author
        if (intval($this->options['fb_author_show']) == 1 && $fb_author != '') {
            $html .= '  <meta property="article:author" content="' . trim(esc_attr($fb_author)) . '"/>
';
        }
        //Publisher
        if (intval($this->options['fb_publisher_show']) == 1 && trim($fb_publisher) != '') {
            $html .= '  <meta property="article:publisher" content="' . trim(esc_attr($fb_publisher)) . '"/>
';
        }
        //App ID
        if (intval($this->options['fb_app_id_show']) == 1 && trim($this->options['fb_app_id']) != '') {
            $html .= '  <meta property="fb:app_id" content="' . trim(esc_attr($this->options['fb_app_id'])) . '"/>
';
        }
        //Admins
        if (intval($this->options['fb_admin_id_show']) == 1 && trim($this->options['fb_admin_id']) != '') {
            $html .= '  <meta property="fb:admins" content="' . trim(esc_attr($this->options['fb_admin_id'])) . '"/>
';
        }
        // Schema
        $html .= ' <!-- Google+ / Schema.org -->
';
        //Title
        if (intval($this->options['fb_title_show_schema']) == 1 && trim($fb_title) != '') {
            $html .= '  <meta itemprop="name" content="' . trim(esc_attr($fb_title)) . '"/>
';
        }
        //Description
        if (intval($this->options['fb_desc_show_schema']) == 1 && trim($fb_desc) != '') {
            $html .= '  <meta itemprop="description" content="' . trim(esc_attr($fb_desc)) . '"/>
';
        }
        //Image
        if (intval($this->options['fb_image_show_schema']) == 1 && trim($fb_image) != '') {
            $html .= '  <meta itemprop="image" content="' . trim(esc_attr($fb_image)) . '"/>
';
        }
        //Author
        if (intval($this->options['fb_author_show_linkrelgp']) == 1 && trim($fb_author_linkrelgp) != '') {
            $html .= '  <link rel="author" href="' . trim(esc_attr($fb_author_linkrelgp)) . '"/>
';
        }
        //Publisher
        if (intval($this->options['fb_publisher_show_schema']) == 1 && trim($fb_publisher_schema) != '') {
            $html .= '  <link rel="publisher" href="' . trim(esc_attr($fb_publisher_schema)) . '"/>
';
        }
        // Twitter
        $html .= ' <!-- Twitter Cards -->
';
        //Title
        if (intval($this->options['fb_title_show_twitter']) == 1 && trim($fb_title) != '') {
            $html .= '  <meta name="twitter:title" content="' . trim(esc_attr($fb_title)) . '"/>
';
        }
        //URL
        if (intval($this->options['fb_url_show_twitter']) == 1 && trim($fb_url) != '') {
            $html .= '  <meta name="twitter:url" content="' . trim(esc_attr($fb_url)) . '"/>
';
        }
        //Description
        if (intval($this->options['fb_desc_show_twitter']) == 1 && trim($fb_desc) != '') {
            $html .= '  <meta name="twitter:description" content="' . trim(esc_attr($fb_desc)) . '"/>
';
        }
        //Image
        if (intval($this->options['fb_image_show_twitter']) == 1 && trim($fb_image) != '') {
            $html .= '  <meta name="twitter:image" content="' . trim(esc_attr($fb_image)) . '"/>
';
        }
        //Twitter Card
        if (intval($this->options['fb_title_show_twitter']) == 1 || intval($this->options['fb_url_show_twitter']) == 1 || intval($this->options['fb_desc_show_twitter']) == 1 || intval($this->options['fb_publisher_show_twitter']) == 1 || intval($this->options['fb_image_show_twitter']) == 1) {
            $html .= '  <meta name="twitter:card" content="' . trim(esc_attr($this->options['fb_twitter_card_type'])) . '"/>
';
        }
        //Author
        if (intval($this->options['fb_author_show_twitter']) == 1 && trim($fb_author_twitter) != '') {
            $html .= '  <meta name="twitter:creator" content="@' . trim(esc_attr($fb_author_twitter)) . '"/>
';
        }
        //Publisher
        if (intval($this->options['fb_publisher_show_twitter']) == 1 && trim($fb_publisher_twitteruser) != '') {
            $html .= '  <meta name="twitter:site" content="@' . trim(esc_attr($fb_publisher_twitteruser)) . '"/>
';
        }
        // SEO
        $html .= ' <!-- SEO -->
';
        //Title
        if (intval($fb_set_title_tag) == 1 && trim($fb_title) != '') {
            //Does nothing so far. We try to create the <title> tag but it's too late now
            //We should use wp_title(), but do we want to? This is only because Business Directory Plugin and they seem to have it covered by now...
        }
        //URL
        if (intval($this->options['fb_url_canonical']) == 1) {
            $html .= '  <link rel="canonical" href="' . trim(esc_attr($fb_url)) . '"/>
';
        }
        //Description
        if (intval($this->options['fb_desc_show_meta']) == 1 && trim($fb_desc) != '') {
            $html .= '  <meta name="description" content="' . trim(esc_attr($fb_desc)) . '"/>
';
        }
        //Author
        if (intval($this->options['fb_author_show_meta']) == 1 && $fb_author_meta != '') {
            $html .= '  <meta name="author" content="' . trim(esc_attr($fb_author_meta)) . '"/>
';
        }
        //Publisher
        if (intval($this->options['fb_publisher_show_meta']) == 1) {
            $html .= '  <meta name="publisher" content="' . trim(esc_attr(get_bloginfo('name'))) . '"/>
';
        }
        // SEO
        $html .= ' <!-- Misc. tags -->
';
        foreach ($fb_additional_tags as $type => $tags) {
            foreach ($tags as $tag => $values) {
                foreach ($values as $value) {
                    $html .= '  <meta ' . $type . '="' . str_replace('_', ':', trim($tag)) . '" content="' . trim(esc_attr($value)) . '"/>
';
                }
            }
        }
        //Close tag
        $html .= '<!-- END - ' . WEBDADOS_FB_PLUGIN_NAME . ' ' . WEBDADOS_FB_VERSION . ' -->

';
        echo $html;
    }