Whoops \ Exception \ ErrorException
(E_WARNING)
Stack frames (23)
22
Whoops\Exception\ErrorException
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php1627
21
WPForms\ErrorHandler
error_handler
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php1627
20
wc_get_gallery_image_html
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-thumbnails.php31
19
include
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php345
18
wc_get_template
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php1594
17
woocommerce_show_product_thumbnails
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php324
16
WP_Hook
apply_filters
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php348
15
WP_Hook
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php517
14
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-image.php55
13
include
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php345
12
wc_get_template
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php1585
11
woocommerce_show_product_images
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php324
10
WP_Hook
apply_filters
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php348
9
WP_Hook
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php517
8
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/genesis-connect-woocommerce/templates/single-product.php59
7
gencwooc_single_product_loop
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php324
6
WP_Hook
apply_filters
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php348
5
WP_Hook
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php517
4
do_action
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/themes/genesis/lib/framework.php66
3
genesis
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/genesis-connect-woocommerce/templates/single-product.php77
2
include
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/template-loader.php106
1
require_once
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-blog-header.php19
0
require
/home/maipod02/domains/pod2.maisolution.com/public_html/index.php17
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php
function wc_get_gallery_image_html( $attachment_id, $main_image = false ) {
$flexslider = (bool) apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) );
$gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' );
$thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) );
$image_size = apply_filters( 'woocommerce_gallery_image_size', $flexslider || $main_image ? 'woocommerce_single' : $thumbnail_size );
$full_size = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) );
$thumbnail_src = wp_get_attachment_image_src( $attachment_id, $thumbnail_size );
$thumbnail_srcset = wp_get_attachment_image_srcset( $attachment_id, $thumbnail_size );
$full_src = wp_get_attachment_image_src( $attachment_id, $full_size );
$alt_text = trim( wp_strip_all_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) );
$image = wp_get_attachment_image(
$attachment_id,
$image_size,
false,
apply_filters(
'woocommerce_gallery_image_html_attachment_image_params',
array(
'title' => _wp_specialchars( get_post_field( 'post_title', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
'data-caption' => _wp_specialchars( get_post_field( 'post_excerpt', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
'data-src' => esc_url( $full_src[0] ),
'data-large_image' => esc_url( $full_src[0] ),
'data-large_image_width' => esc_attr( $full_src[1] ),
'data-large_image_height' => esc_attr( $full_src[2] ),
'class' => esc_attr( $main_image ? 'wp-post-image' : '' ),
),
$attachment_id,
$image_size,
$main_image
)
);
return '<div data-thumb="' . esc_url( $thumbnail_src[0] ) . '" data-thumb-alt="' . esc_attr( $alt_text ) . '" data-thumb-srcset="' . esc_attr( $thumbnail_srcset ) . '" class="woocommerce-product-gallery__image"><a href="' . esc_url( $full_src[0] ) . '">' . $image . '</a></div>';
}
if ( ! function_exists( 'woocommerce_output_product_data_tabs' ) ) {
/**
* Output the product tabs.
*/
function woocommerce_output_product_data_tabs() {
Arguments
"Trying to access array offset on value of type bool"
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php
function wc_get_gallery_image_html( $attachment_id, $main_image = false ) {
$flexslider = (bool) apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) );
$gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' );
$thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) );
$image_size = apply_filters( 'woocommerce_gallery_image_size', $flexslider || $main_image ? 'woocommerce_single' : $thumbnail_size );
$full_size = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) );
$thumbnail_src = wp_get_attachment_image_src( $attachment_id, $thumbnail_size );
$thumbnail_srcset = wp_get_attachment_image_srcset( $attachment_id, $thumbnail_size );
$full_src = wp_get_attachment_image_src( $attachment_id, $full_size );
$alt_text = trim( wp_strip_all_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) );
$image = wp_get_attachment_image(
$attachment_id,
$image_size,
false,
apply_filters(
'woocommerce_gallery_image_html_attachment_image_params',
array(
'title' => _wp_specialchars( get_post_field( 'post_title', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
'data-caption' => _wp_specialchars( get_post_field( 'post_excerpt', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
'data-src' => esc_url( $full_src[0] ),
'data-large_image' => esc_url( $full_src[0] ),
'data-large_image_width' => esc_attr( $full_src[1] ),
'data-large_image_height' => esc_attr( $full_src[2] ),
'class' => esc_attr( $main_image ? 'wp-post-image' : '' ),
),
$attachment_id,
$image_size,
$main_image
)
);
return '<div data-thumb="' . esc_url( $thumbnail_src[0] ) . '" data-thumb-alt="' . esc_attr( $alt_text ) . '" data-thumb-srcset="' . esc_attr( $thumbnail_srcset ) . '" class="woocommerce-product-gallery__image"><a href="' . esc_url( $full_src[0] ) . '">' . $image . '</a></div>';
}
if ( ! function_exists( 'woocommerce_output_product_data_tabs' ) ) {
/**
* Output the product tabs.
*/
function woocommerce_output_product_data_tabs() {
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-thumbnails.php
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.1
*/
defined( 'ABSPATH' ) || exit;
// Note: `wc_get_gallery_image_html` was added in WC 3.3.2 and did not exist prior. This check protects against theme overrides being used on older versions of WC.
if ( ! function_exists( 'wc_get_gallery_image_html' ) ) {
return;
}
global $product;
$attachment_ids = $product->get_gallery_image_ids();
if ( $attachment_ids && $product->get_image_id() ) {
foreach ( $attachment_ids as $attachment_id ) {
echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', wc_get_gallery_image_html( $attachment_id ), $attachment_id ); // phpcs:disable WordPress.XSS.EscapeOutput.OutputNotEscaped
}
}
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php
'template_path' => $template_path,
'located' => $template,
'args' => $args,
);
if ( ! empty( $args ) && is_array( $args ) ) {
if ( isset( $args['action_args'] ) ) {
wc_doing_it_wrong(
__FUNCTION__,
__( 'action_args should not be overwritten when calling wc_get_template.', 'woocommerce' ),
'3.6.0'
);
unset( $args['action_args'] );
}
extract( $args ); // @codingStandardsIgnoreLine
}
do_action( 'woocommerce_before_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
include $action_args['located'];
do_action( 'woocommerce_after_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
}
/**
* Like wc_get_template, but returns the HTML instead of outputting.
*
* @see wc_get_template
* @since 2.5.0
* @param string $template_name Template name.
* @param array $args Arguments. (default: array).
* @param string $template_path Template path. (default: '').
* @param string $default_path Default path. (default: '').
*
* @return string
*/
function wc_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
ob_start();
wc_get_template( $template_name, $args, $template_path, $default_path );
return ob_get_clean();
Arguments
"/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-thumbnails.php"
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php
/**
* Single Product
*/
if ( ! function_exists( 'woocommerce_show_product_images' ) ) {
/**
* Output the product image before the single product summary.
*/
function woocommerce_show_product_images() {
wc_get_template( 'single-product/product-image.php' );
}
}
if ( ! function_exists( 'woocommerce_show_product_thumbnails' ) ) {
/**
* Output the product thumbnails.
*/
function woocommerce_show_product_thumbnails() {
wc_get_template( 'single-product/product-thumbnails.php' );
}
}
/**
* Get HTML for a gallery image.
*
* Hooks: woocommerce_gallery_thumbnail_size, woocommerce_gallery_image_size and woocommerce_gallery_full_size accept name based image sizes, or an array of width/height values.
*
* @since 3.3.2
* @param int $attachment_id Attachment ID.
* @param bool $main_image Is this the main image or a thumbnail?.
* @return string
*/
function wc_get_gallery_image_html( $attachment_id, $main_image = false ) {
$flexslider = (bool) apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) );
$gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' );
$thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) );
$image_size = apply_filters( 'woocommerce_gallery_image_size', $flexslider || $main_image ? 'woocommerce_single' : $thumbnail_size );
$full_size = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) );
$thumbnail_src = wp_get_attachment_image_src( $attachment_id, $thumbnail_size );
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php
$this->iterations[ $nesting_level ] = $this->priorities;
$num_args = count( $args );
do {
$this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
$priority = $this->current_priority[ $nesting_level ];
foreach ( $this->callbacks[ $priority ] as $the_ ) {
if ( ! $this->doing_action ) {
$args[0] = $value;
}
// Avoid the array_slice() if possible.
if ( 0 === $the_['accepted_args'] ) {
$value = call_user_func( $the_['function'] );
} 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, $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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
/home/maipod02/domains/pod2.maisolution.com/public_html/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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
*/
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 ] = $this->priorities;
do {
$priority = current( $this->iterations[ $nesting_level ] );
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php
if ( ! isset( $wp_filter[ $hook_name ] ) ) {
if ( isset( $wp_filter['all'] ) ) {
array_pop( $wp_current_filter );
}
return;
}
if ( ! isset( $wp_filter['all'] ) ) {
$wp_current_filter[] = $hook_name;
}
if ( empty( $arg ) ) {
$arg[] = '';
} elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
// Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
$arg[0] = $arg[0][0];
}
$wp_filter[ $hook_name ]->do_action( $arg );
array_pop( $wp_current_filter );
}
/**
* Calls the callback functions that have been added to an action hook, specifying arguments in an array.
*
* @since 2.1.0
*
* @see do_action() This function is identical, but the arguments passed to the
* functions hooked to `$hook_name` are supplied using an array.
*
* @global WP_Hook[] $wp_filter Stores all of the filters and actions.
* @global int[] $wp_actions Stores the number of times each action was triggered.
* @global string[] $wp_current_filter Stores the list of current filters with the current one last.
*
* @param string $hook_name The name of the action to be executed.
* @param array $args The arguments supplied to the functions hooked to `$hook_name`.
*/
function do_action_ref_array( $hook_name, $args ) {
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-image.php
)
);
?>
<div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-columns="<?php echo esc_attr( $columns ); ?>" style="opacity: 0; transition: opacity .25s ease-in-out;">
<div class="woocommerce-product-gallery__wrapper">
<?php
if ( $post_thumbnail_id ) {
$html = wc_get_gallery_image_html( $post_thumbnail_id, true );
} else {
$wrapper_classname = $product->is_type( 'variable' ) && ! empty( $product->get_available_variations( 'image' ) ) ?
'woocommerce-product-gallery__image woocommerce-product-gallery__image--placeholder' :
'woocommerce-product-gallery__image--placeholder';
$html = sprintf( '<div class="%s">', esc_attr( $wrapper_classname ) );
$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
$html .= '</div>';
}
echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $post_thumbnail_id ); // phpcs:disable WordPress.XSS.EscapeOutput.OutputNotEscaped
do_action( 'woocommerce_product_thumbnails' );
?>
</div>
</div>
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php
'template_path' => $template_path,
'located' => $template,
'args' => $args,
);
if ( ! empty( $args ) && is_array( $args ) ) {
if ( isset( $args['action_args'] ) ) {
wc_doing_it_wrong(
__FUNCTION__,
__( 'action_args should not be overwritten when calling wc_get_template.', 'woocommerce' ),
'3.6.0'
);
unset( $args['action_args'] );
}
extract( $args ); // @codingStandardsIgnoreLine
}
do_action( 'woocommerce_before_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
include $action_args['located'];
do_action( 'woocommerce_after_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
}
/**
* Like wc_get_template, but returns the HTML instead of outputting.
*
* @see wc_get_template
* @since 2.5.0
* @param string $template_name Template name.
* @param array $args Arguments. (default: array).
* @param string $template_path Template path. (default: '').
* @param string $default_path Default path. (default: '').
*
* @return string
*/
function wc_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
ob_start();
wc_get_template( $template_name, $args, $template_path, $default_path );
return ob_get_clean();
Arguments
"/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/templates/single-product/product-image.php"
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php
if ( ! wc_get_loop_prop( 'is_shortcode' ) ) {
$args['format'] = '';
$args['base'] = esc_url_raw( str_replace( 999999999, '%#%', remove_query_arg( 'add-to-cart', get_pagenum_link( 999999999, false ) ) ) );
}
wc_get_template( 'loop/pagination.php', $args );
}
}
/**
* Single Product
*/
if ( ! function_exists( 'woocommerce_show_product_images' ) ) {
/**
* Output the product image before the single product summary.
*/
function woocommerce_show_product_images() {
wc_get_template( 'single-product/product-image.php' );
}
}
if ( ! function_exists( 'woocommerce_show_product_thumbnails' ) ) {
/**
* Output the product thumbnails.
*/
function woocommerce_show_product_thumbnails() {
wc_get_template( 'single-product/product-thumbnails.php' );
}
}
/**
* Get HTML for a gallery image.
*
* Hooks: woocommerce_gallery_thumbnail_size, woocommerce_gallery_image_size and woocommerce_gallery_full_size accept name based image sizes, or an array of width/height values.
*
* @since 3.3.2
* @param int $attachment_id Attachment ID.
* @param bool $main_image Is this the main image or a thumbnail?.
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php
$this->iterations[ $nesting_level ] = $this->priorities;
$num_args = count( $args );
do {
$this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
$priority = $this->current_priority[ $nesting_level ];
foreach ( $this->callbacks[ $priority ] as $the_ ) {
if ( ! $this->doing_action ) {
$args[0] = $value;
}
// Avoid the array_slice() if possible.
if ( 0 === $the_['accepted_args'] ) {
$value = call_user_func( $the_['function'] );
} 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, $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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
/home/maipod02/domains/pod2.maisolution.com/public_html/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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
*/
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 ] = $this->priorities;
do {
$priority = current( $this->iterations[ $nesting_level ] );
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php
if ( ! isset( $wp_filter[ $hook_name ] ) ) {
if ( isset( $wp_filter['all'] ) ) {
array_pop( $wp_current_filter );
}
return;
}
if ( ! isset( $wp_filter['all'] ) ) {
$wp_current_filter[] = $hook_name;
}
if ( empty( $arg ) ) {
$arg[] = '';
} elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
// Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
$arg[0] = $arg[0][0];
}
$wp_filter[ $hook_name ]->do_action( $arg );
array_pop( $wp_current_filter );
}
/**
* Calls the callback functions that have been added to an action hook, specifying arguments in an array.
*
* @since 2.1.0
*
* @see do_action() This function is identical, but the arguments passed to the
* functions hooked to `$hook_name` are supplied using an array.
*
* @global WP_Hook[] $wp_filter Stores all of the filters and actions.
* @global int[] $wp_actions Stores the number of times each action was triggered.
* @global string[] $wp_current_filter Stores the list of current filters with the current one last.
*
* @param string $hook_name The name of the action to be executed.
* @param array $args The arguments supplied to the functions hooked to `$hook_name`.
*/
function do_action_ref_array( $hook_name, $args ) {
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/genesis-connect-woocommerce/templates/single-product.php
do_action( 'woocommerce_before_main_content' );
$wc_query = apply_filters( 'gencwooc_custom_query', false );
if ( ! $wc_query ) {
global $wp_query;
$wc_query = $wp_query;
}
if ( $wc_query->have_posts() ) {
while ( $wc_query->have_posts() ) {
$wc_query->the_post();
do_action( 'woocommerce_before_single_product' );
?>
<div id="product-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php do_action( 'woocommerce_before_single_product_summary' ); ?>
<div class="summary">
<?php do_action( 'woocommerce_single_product_summary' ); ?>
</div>
<?php do_action( 'woocommerce_after_single_product_summary' ); ?>
</div>
<?php
do_action( 'woocommerce_after_single_product' );
}
}
do_action( 'woocommerce_after_main_content' );
}
genesis();
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/class-wp-hook.php
$this->iterations[ $nesting_level ] = $this->priorities;
$num_args = count( $args );
do {
$this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
$priority = $this->current_priority[ $nesting_level ];
foreach ( $this->callbacks[ $priority ] as $the_ ) {
if ( ! $this->doing_action ) {
$args[0] = $value;
}
// Avoid the array_slice() if possible.
if ( 0 === $the_['accepted_args'] ) {
$value = call_user_func( $the_['function'] );
} 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, $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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
/home/maipod02/domains/pod2.maisolution.com/public_html/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;
}
/**
* Calls the callback functions that have been added to an action hook.
*
* @since 4.7.0
*
* @param array $args Parameters to pass to the callback functions.
*/
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 ] = $this->priorities;
do {
$priority = current( $this->iterations[ $nesting_level ] );
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/plugin.php
if ( ! isset( $wp_filter[ $hook_name ] ) ) {
if ( isset( $wp_filter['all'] ) ) {
array_pop( $wp_current_filter );
}
return;
}
if ( ! isset( $wp_filter['all'] ) ) {
$wp_current_filter[] = $hook_name;
}
if ( empty( $arg ) ) {
$arg[] = '';
} elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
// Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
$arg[0] = $arg[0][0];
}
$wp_filter[ $hook_name ]->do_action( $arg );
array_pop( $wp_current_filter );
}
/**
* Calls the callback functions that have been added to an action hook, specifying arguments in an array.
*
* @since 2.1.0
*
* @see do_action() This function is identical, but the arguments passed to the
* functions hooked to `$hook_name` are supplied using an array.
*
* @global WP_Hook[] $wp_filter Stores all of the filters and actions.
* @global int[] $wp_actions Stores the number of times each action was triggered.
* @global string[] $wp_current_filter Stores the list of current filters with the current one last.
*
* @param string $hook_name The name of the action to be executed.
* @param array $args The arguments supplied to the functions hooked to `$hook_name`.
*/
function do_action_ref_array( $hook_name, $args ) {
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/themes/genesis/lib/framework.php
genesis_markup(
[
'open' => '<main %s>',
'context' => 'content',
]
);
/**
* Fires before the loop hook, after the main content opening markup.
*
* @since 1.0.0
*/
do_action( 'genesis_before_loop' );
/**
* Fires to display the loop contents.
*
* @since 1.1.0
*/
do_action( 'genesis_loop' );
/**
* Fires after the loop hook, before the main content closing markup.
*
* @since 1.0.0
*/
do_action( 'genesis_after_loop' );
genesis_markup(
[
'close' => '</main>', // End .content.
'context' => 'content',
]
);
/**
* Fires after the content, before the main content sidebar wrap closing markup.
*
* @since 1.0.0
*/
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/genesis-connect-woocommerce/templates/single-product.php
<div id="product-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php do_action( 'woocommerce_before_single_product_summary' ); ?>
<div class="summary">
<?php do_action( 'woocommerce_single_product_summary' ); ?>
</div>
<?php do_action( 'woocommerce_after_single_product_summary' ); ?>
</div>
<?php
do_action( 'woocommerce_after_single_product' );
}
}
do_action( 'woocommerce_after_main_content' );
}
genesis();
/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/template-loader.php
}
break;
}
}
if ( ! $template ) {
$template = get_index_template();
}
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
$template = apply_filters( 'template_include', $template );
if ( $template ) {
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
Arguments
"/home/maipod02/domains/pod2.maisolution.com/public_html/wp-content/plugins/genesis-connect-woocommerce/templates/single-product.php"
/home/maipod02/domains/pod2.maisolution.com/public_html/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 __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
Arguments
"/home/maipod02/domains/pod2.maisolution.com/public_html/wp-includes/template-loader.php"
/home/maipod02/domains/pod2.maisolution.com/public_html/index.php
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
Arguments
"/home/maipod02/domains/pod2.maisolution.com/public_html/wp-blog-header.php"
Environment & details:
empty
empty
empty
empty
empty
Key | Value |
SERVER_SOFTWARE | "nginx/1.24.0"
|
REQUEST_URI | "/product/electric-sewing-machine/"
|
USER | "maipod02"
|
HOME | "/home/maipod02"
|
HTTP_CF_IPCOUNTRY | "US"
|
HTTP_CF_VISITOR | "{\"scheme\":\"https\"}"
|
HTTP_CDN_LOOP | "cloudflare; loops=1"
|
HTTP_ACCEPT | "*/*"
|
HTTP_X_FORWARDED_PROTO | "https"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])"
|
HTTP_ACCEPT_ENCODING | "gzip, br"
|
HTTP_REFERER | "https://fivehearthomeliving.com/product/electric-sewing-machine"
|
HTTP_CF_CONNECTING_IP | "3.142.199.181"
|
HTTP_X_FORWARDED_FOR | "3.142.199.181"
|
HTTP_CF_RAY | "8ccad953bc66619c-ORD"
|
HTTP_HOST | "fivehearthomeliving.com"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
SERVER_PORT | "443"
|
SERVER_NAME | "www.pod2.maisolution.com"
|
SERVER_ADDR | "::ffff:15.204.189.120"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "/home/maipod02/domains/pod2.maisolution.com/public_html/index.php"
|
REQUEST_SCHEME | "https"
|
REQUEST_METHOD | "GET"
|
REMOTE_PORT | "" |
REMOTE_ADDR | "3.142.199.181"
|
REDIRECT_STATUS | "200"
|
QUERY_STRING | "" |
HTTPS | "on"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
DOCUMENT_URI | "/index.php"
|
DOCUMENT_ROOT | "/home/maipod02/domains/pod2.maisolution.com/public_html"
|
CONTENT_TYPE | "" |
CONTENT_LENGTH | "" |
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1727936663.6533
|
REQUEST_TIME | 1727936663
|
empty
0. Whoops\Handler\PrettyPageHandler