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/check-valves/ |
USER | www-data |
HOME | /var/www |
HTTP_REFERER | https://italoservices.com/content/themes/massive/assets/js/+c+ |
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 | 43118 |
REMOTE_ADDR | 3.133.137.169 |
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 | 1716090899.8959 |
REQUEST_TIME | 1716090899 |
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