/** * 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; } }
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; }
/** * 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; }
/** * 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(' ', ' ', $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; }