Whoops \ Exception \ ErrorException
(E_WARNING)
Stack frames (17)
16
Whoops
\Exception
\ErrorException
…
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
923
15
Whoops
\Run
handleError
…
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
923
14
WC_Product
get_price_excluding_tax
…
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
943
13
WC_Product
get_display_price
…
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
991
12
WC_Product
get_price_html
…
/htdocs
/content
/themes
/massive
/includes
/woocommerce
/filters
/single.php
82
11
woocommerce_template_single_price
…
/htdocs
/cms
/wp-includes
/class-wp-hook.php
286
10
WP_Hook
apply_filters
…
/htdocs
/cms
/wp-includes
/class-wp-hook.php
310
9
WP_Hook
do_action
…
/htdocs
/cms
/wp-includes
/plugin.php
453
8
do_action
…
/htdocs
/content
/themes
/massive
/includes
/woocommerce
/loop
/single.php
24
7
require
…
/htdocs
/cms
/wp-includes
/template.php
690
6
load_template
…
/htdocs
/cms
/wp-includes
/template.php
647
5
locate_template
…
/htdocs
/cms
/wp-includes
/general-template.php
155
4
get_template_part
…
/htdocs
/content
/themes
/massive
/includes
/functions.woocommerce.php
33
3
woocommerce_content
…
/htdocs
/content
/themes
/massive
/woocommerce.php
38
2
include
…
/htdocs
/cms
/wp-includes
/template-loader.php
74
1
require_once
…
/htdocs
/cms
/wp-blog-header.php
19
0
require
…
/htdocs
/index.php
11
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
/**
* Returns the price (excluding tax) - ignores tax_class filters since the price may *include* tax and thus needs subtracting.
* Uses store base tax rates. Can work for a specific $qty for more accurate taxes.
*
* @param int $qty
* @param string $price to calculate, left blank to just use get_price()
* @return string
*/
public function get_price_excluding_tax( $qty = 1, $price = '' ) {
if ( $price === '' ) {
$price = $this->get_price();
}
if ( $this->is_taxable() && 'yes' === get_option( 'woocommerce_prices_include_tax' ) ) {
$tax_rates = WC_Tax::get_base_tax_rates( $this->tax_class );
$taxes = WC_Tax::calc_tax( $price * $qty, $tax_rates, true );
$price = WC_Tax::round( $price * $qty - array_sum( $taxes ) );
} else {
$price = $price * $qty;
}
return apply_filters( 'woocommerce_get_price_excluding_tax', $price, $qty, $this );
}
/**
* Returns the price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
*
* @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 function get_display_price( $price = '', $qty = 1 ) {
if ( $price === '' ) {
$price = $this->get_price();
}
$tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
$display_price = $tax_display_mode == 'incl' ? $this->get_price_including_tax( $qty, $price ) : $this->get_price_excluding_tax( $qty, $price );
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
/**
* Returns the price (excluding tax) - ignores tax_class filters since the price may *include* tax and thus needs subtracting.
* Uses store base tax rates. Can work for a specific $qty for more accurate taxes.
*
* @param int $qty
* @param string $price to calculate, left blank to just use get_price()
* @return string
*/
public function get_price_excluding_tax( $qty = 1, $price = '' ) {
if ( $price === '' ) {
$price = $this->get_price();
}
if ( $this->is_taxable() && 'yes' === get_option( 'woocommerce_prices_include_tax' ) ) {
$tax_rates = WC_Tax::get_base_tax_rates( $this->tax_class );
$taxes = WC_Tax::calc_tax( $price * $qty, $tax_rates, true );
$price = WC_Tax::round( $price * $qty - array_sum( $taxes ) );
} else {
$price = $price * $qty;
}
return apply_filters( 'woocommerce_get_price_excluding_tax', $price, $qty, $this );
}
/**
* Returns the price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
*
* @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 function get_display_price( $price = '', $qty = 1 ) {
if ( $price === '' ) {
$price = $this->get_price();
}
$tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
$display_price = $tax_display_mode == 'incl' ? $this->get_price_including_tax( $qty, $price ) : $this->get_price_excluding_tax( $qty, $price );
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
}
return apply_filters( 'woocommerce_get_price_excluding_tax', $price, $qty, $this );
}
/**
* Returns the price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
*
* @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 function get_display_price( $price = '', $qty = 1 ) {
if ( $price === '' ) {
$price = $this->get_price();
}
$tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
$display_price = $tax_display_mode == 'incl' ? $this->get_price_including_tax( $qty, $price ) : $this->get_price_excluding_tax( $qty, $price );
return $display_price;
}
/**
* Get the suffix to display after prices > 0.
*
* @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 function get_price_suffix( $price = '', $qty = 1 ) {
if ( $price === '' ) {
$price = $this->get_price();
}
$price_display_suffix = get_option( 'woocommerce_price_display_suffix' );
if ( $price_display_suffix ) {
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/plugins
/woocommerce
/includes
/abstracts
/abstract-wc-product.php
$replace = array(
wc_price( $this->get_price_including_tax( $qty, $price ) ),
wc_price( $this->get_price_excluding_tax( $qty, $price ) )
);
$price_display_suffix = str_replace( $find, $replace, $price_display_suffix );
}
return apply_filters( 'woocommerce_get_price_suffix', $price_display_suffix, $this );
}
/**
* Returns the price in html format.
*
* @param string $price (default: '')
* @return string
*/
public function get_price_html( $price = '' ) {
$display_price = $this->get_display_price();
$display_regular_price = $this->get_display_price( $this->get_regular_price() );
if ( $this->get_price() > 0 ) {
if ( $this->is_on_sale() && $this->get_regular_price() ) {
$price .= $this->get_price_html_from_to( $display_regular_price, $display_price ) . $this->get_price_suffix();
$price = apply_filters( 'woocommerce_sale_price_html', $price, $this );
} else {
$price .= wc_price( $display_price ) . $this->get_price_suffix();
$price = apply_filters( 'woocommerce_price_html', $price, $this );
}
} elseif ( $this->get_price() === '' ) {
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/themes
/massive
/includes
/woocommerce
/filters
/single.php
/**
* Single prodcut title
*/
function woocommerce_template_single_title() { ?>
<div class="product-title">
<h2 itemprop="name" class="text-uppercase" title="<?php printf( esc_attr__( 'Permalink to: %s', 'massive' ), get_the_title() ); ?>"><?php the_title(); ?></h2>
</div>
<?php }
// Removed wc default single product sale flash & added with 'woocommerce_show_product_images'
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash');
/**
* Single product price
*/
function woocommerce_template_single_price() {
global $product;?>
<div class="product-price txt-xl">
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span class="border-tb p-tb-10 m-bot-10"><?php echo $product->get_price_html(); ?></span>
<meta itemprop="price" content="<?php echo esc_attr( $product->get_price() ); ?>" />
<meta itemprop="priceCurrency" content="<?php echo esc_attr( get_woocommerce_currency() ); ?>" />
<span class="status">
<?php echo $product->is_in_stock() ? esc_html__( 'InStock', 'massive' ) : esc_html__( 'OutOfStock', 'massive') ; ?>
</span>
</div>
</div>
<?php }
/**
* Excerpt on single product page
*/
function woocommerce_template_single_excerpt() {
global $post;
if ( ! $post->post_excerpt ) { return; } ?>
<div itemprop="description">
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
<?php }
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/class-wp-hook.php
}
$nesting_level = $this->nesting_level++;
$this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
$num_args = count( $args );
do {
$this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );
foreach ( $this->callbacks[ $priority ] as $the_ ) {
if( ! $this->doing_action ) {
$args[ 0 ] = $value;
}
// Avoid the array_slice if possible.
if ( $the_['accepted_args'] == 0 ) {
$value = call_user_func_array( $the_['function'], array() );
} elseif ( $the_['accepted_args'] >= $num_args ) {
$value = call_user_func_array( $the_['function'], $args );
} else {
$value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
}
}
} while ( false !== next( $this->iterations[ $nesting_level ] ) );
unset( $this->iterations[ $nesting_level ] );
unset( $this->current_priority[ $nesting_level ] );
$this->nesting_level--;
return $value;
}
/**
* Executes the callback functions hooked on a specific action hook.
*
* @since 4.7.0
*
* @param mixed $args Arguments to pass to the hook callbacks.
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/class-wp-hook.php
} while ( false !== next( $this->iterations[ $nesting_level ] ) );
unset( $this->iterations[ $nesting_level ] );
unset( $this->current_priority[ $nesting_level ] );
$this->nesting_level--;
return $value;
}
/**
* Executes the callback functions hooked on a specific action hook.
*
* @since 4.7.0
*
* @param mixed $args Arguments to pass to the hook callbacks.
*/
public function do_action( $args ) {
$this->doing_action = true;
$this->apply_filters( '', $args );
// If there are recursive calls to the current action, we haven't finished it until we get to the last one.
if ( ! $this->nesting_level ) {
$this->doing_action = false;
}
}
/**
* Processes the functions hooked into the 'all' hook.
*
* @since 4.7.0
*
* @param array $args Arguments to pass to the hook callbacks. Passed by reference.
*/
public function do_all_hook( &$args ) {
$nesting_level = $this->nesting_level++;
$this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
do {
$priority = current( $this->iterations[ $nesting_level ] );
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/plugin.php
}
if ( !isset($wp_filter[$tag]) ) {
if ( isset($wp_filter['all']) )
array_pop($wp_current_filter);
return;
}
if ( !isset($wp_filter['all']) )
$wp_current_filter[] = $tag;
$args = array();
if ( is_array($arg) && 1 == count($arg) && isset($arg[0]) && is_object($arg[0]) ) // array(&$this)
$args[] =& $arg[0];
else
$args[] = $arg;
for ( $a = 2, $num = func_num_args(); $a < $num; $a++ )
$args[] = func_get_arg($a);
$wp_filter[ $tag ]->do_action( $args );
array_pop($wp_current_filter);
}
/**
* Retrieve the number of times an action is fired.
*
* @since 2.1.0
*
* @global array $wp_actions Increments the amount of times action was triggered.
*
* @param string $tag The name of the action hook.
* @return int The number of times action hook $tag is fired.
*/
function did_action($tag) {
global $wp_actions;
if ( ! isset( $wp_actions[ $tag ] ) )
return 0;
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/themes
/massive
/includes
/woocommerce
/loop
/single.php
<div class="col-md-5">
<?php
/**
* @hooked woocommerce_show_product_sale_flash
* @hooked woocommerce_show_product_images */
do_action( 'woocommerce_before_single_product_summary' );
?>
</div>
<div class="col-md-7">
<?php
/**
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );
?>
</div>
</div> <!-- .row -->
<?php
/**
* @hooked woocommerce_output_product_data_tabs - 10
* @hooked woocommerce_upsell_display - 15
* @hooked woocommerce_output_related_products - 20
*/
do_action( 'woocommerce_after_single_product_summary' );
?>
<meta itemprop="url" content="<?php the_permalink(); ?>" />
</div><!-- #product-<?php the_ID(); ?> -->
<?php do_action( 'woocommerce_after_single_product' ); ?>
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/template.php
* @global int $user_ID
*
* @param string $_template_file Path to template file.
* @param bool $require_once Whether to require_once or require. Default true.
*/
function load_template( $_template_file, $require_once = true ) {
global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;
if ( is_array( $wp_query->query_vars ) ) {
extract( $wp_query->query_vars, EXTR_SKIP );
}
if ( isset( $s ) ) {
$s = esc_attr( $s );
}
if ( $require_once ) {
require_once( $_template_file );
} else {
require( $_template_file );
}
}
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/template.php
*/
function locate_template($template_names, $load = false, $require_once = true ) {
$located = '';
foreach ( (array) $template_names as $template_name ) {
if ( !$template_name )
continue;
if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
$located = STYLESHEETPATH . '/' . $template_name;
break;
} elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
$located = TEMPLATEPATH . '/' . $template_name;
break;
} elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) {
$located = ABSPATH . WPINC . '/theme-compat/' . $template_name;
break;
}
}
if ( $load && '' != $located )
load_template( $located, $require_once );
return $located;
}
/**
* Require the template file with WordPress environment.
*
* The globals are set up for the template file to ensure that the WordPress
* environment is available from within the function. The query variables are
* also available.
*
* @since 1.5.0
*
* @global array $posts
* @global WP_Post $post
* @global bool $wp_did_header
* @global WP_Query $wp_query
* @global WP_Rewrite $wp_rewrite
* @global wpdb $wpdb
* @global string $wp_version
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/general-template.php
* Fires before the specified template part file is loaded.
*
* The dynamic portion of the hook name, `$slug`, refers to the slug name
* for the generic template part.
*
* @since 3.0.0
*
* @param string $slug The slug name for the generic template.
* @param string|null $name The name of the specialized template.
*/
do_action( "get_template_part_{$slug}", $slug, $name );
$templates = array();
$name = (string) $name;
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
/**
* Display search form.
*
* Will first attempt to locate the searchform.php file in either the child or
* the parent, then load it. If it doesn't exist, then the default search form
* will be displayed. The default search form is HTML, which will be displayed.
* There is a filter applied to the search form HTML in order to edit or replace
* it. The filter is {@see 'get_search_form'}.
*
* This function is primarily used by themes which want to hardcode the search
* form into the sidebar and also by the search widget in WordPress.
*
* There is also an action that is called whenever the function is run called,
* {@see 'pre_get_search_form'}. This can be useful for outputting JavaScript that the
* search relies on or various formatting that applies to the beginning of the
* search. To give a few examples of what it can be used for.
*
* @since 2.7.0
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/themes
/massive
/includes
/functions.woocommerce.php
* Output WooCommerce content.
*/
if ( ! function_exists( 'woocommerce_content' ) ) {
function woocommerce_content() {
if ( is_singular( 'product' ) ) {
while ( have_posts() ) { the_post(); ?>
<?php
/** @hooked wc_print_notices */
do_action( 'woocommerce_before_single_product' );
if ( post_password_required() ) {
echo get_the_password_form();
return;
}
get_template_part( 'includes/woocommerce/loop/single' );
} // end of the loop.
} else { ?>
<?php if ( have_posts() ) { ?>
<div class="clearfix m-bot-30 inline-block">
<?php do_action('woocommerce_before_shop_loop'); ?>
</div>
<?php woocommerce_product_loop_start();
woocommerce_product_subcategories();
while ( have_posts() ) { the_post();
get_template_part( 'includes/woocommerce/loop/archive' );
/
home
/forge
/italoservices.com
/html
/htdocs
/content
/themes
/massive
/woocommerce.php
<?php if ( is_singular( 'product' ) ) { ?>
<h4 class="text-uppercase"><?php the_title(); ?></h4>
<?php } else { ?>
<h4 class="text-uppercase"><?php woocommerce_page_title(); ?></h4>
<?php } ?>
<?php } ?>
<?php if ( function_exists('massive_breadcrumbs') ) massive_breadcrumbs(); ?>
</div>
</section>
<section class="body-content">
<div class="page-content product-grid">
<div class="<?php echo esc_attr( $container ); ?>">
<div class="row">
<div class="<?php echo esc_attr( $column['main'] ); ?>">
<?php
if ( is_page() ) {
the_content();
} else {
woocommerce_content();
}
?>
</div>
<?php if ( $sidebar !== 'no-sidebar' ) { ?>
<div class="<?php echo esc_attr( $column['sidebar'] ); ?>">
<?php
/**
* woocommerce_sidebar hook
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>
</div>
<?php } ?>
</div> <!-- .row -->
</div> <!-- .container -->
</div> <!-- page content -->
</section> <!-- body content -->
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-includes
/template-loader.php
elseif ( is_single() && $template = get_single_template() ) :
elseif ( is_page() && $template = get_page_template() ) :
elseif ( is_singular() && $template = get_singular_template() ) :
elseif ( is_category() && $template = get_category_template() ) :
elseif ( is_tag() && $template = get_tag_template() ) :
elseif ( is_author() && $template = get_author_template() ) :
elseif ( is_date() && $template = get_date_template() ) :
elseif ( is_archive() && $template = get_archive_template() ) :
else :
$template = get_index_template();
endif;
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
if ( $template = apply_filters( 'template_include', $template ) ) {
include( $template );
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
endif;
/
home
/forge
/italoservices.com
/html
/htdocs
/cms
/wp-blog-header.php
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once( dirname(__FILE__) . '/wp-load.php' );
// Set up the WordPress query.
wp();
// Load the theme template.
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
/
home
/forge
/italoservices.com
/html
/htdocs
/index.php
<?php
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require dirname(__FILE__).'/cms/wp-blog-header.php';
Environment & details:
empty
empty
empty
empty
empty
| Key | Value |
| SERVER_SOFTWARE | nginx/1.10.3 |
| REQUEST_URI | /product/valvole-a-sfera/ |
| USER | www-data |
| HOME | /var/www |
| HTTP_REFERER | https://italoservices.com/product/valvole-a-sfera |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_ACCEPT | */* |
| HTTP_HOST | italoservices.com |
| REDIRECT_STATUS | 200 |
| SERVER_NAME | italoservices.com |
| SERVER_PORT | 443 |
| SERVER_ADDR | 138.68.44.193 |
| REMOTE_PORT | 1421 |
| REMOTE_ADDR | 216.73.216.0 |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTPS | on |
| REQUEST_SCHEME | https |
| SERVER_PROTOCOL | HTTP/2.0 |
| DOCUMENT_ROOT | /home/forge/italoservices.com/html/htdocs |
| DOCUMENT_URI | /index.php |
| SCRIPT_NAME | /index.php |
| CONTENT_LENGTH | |
| CONTENT_TYPE | |
| REQUEST_METHOD | GET |
| QUERY_STRING | |
| SCRIPT_FILENAME | /home/forge/italoservices.com/html/htdocs/index.php |
| APPLICATION_ENV | production |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1767811562.6399 |
| REQUEST_TIME | 1767811562 |
| DB_NAME | wp_ahmed_2016_2 |
| DB_USER | forge |
| DB_PASSWORD | zIsDTsUakZyvRiCZruG2 |
| DB_HOST | localhost |
| WP_HOME | http://italoservices.com |
| WP_SITEURL | http://italoservices.com/cms |
| Key | Value |
| DB_NAME | wp_ahmed_2016_2 |
| DB_USER | forge |
| DB_PASSWORD | zIsDTsUakZyvRiCZruG2 |
| DB_HOST | localhost |
| WP_HOME | http://italoservices.com |
| WP_SITEURL | http://italoservices.com/cms |
0. Whoops\Handler\PrettyPageHandler