HEX
Server: Apache/2.4.57 (Debian)
System: Linux web-server-k8s-e92jnr3j-6f99bff6b6-rp2wg 6.1.0-22-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21) x86_64
User: apache (48)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/sites/1250.info/wp-content/themes/savoy/woocommerce/content-single-product.php
<?php
/**
 * The template for displaying product content in the single-product.php template
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/content-single-product.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerce/Templates
 * @version 3.6.0
 NM: Modified */

defined( 'ABSPATH' ) || exit;

global $product, $nm_theme_options, $nm_globals;


/* Global: Used to check for WooCommerce [product_page] shortcode */
$nm_globals['is_product'] = true;


/* Notices */
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );


/* Summary: Opening tags */
add_action( 'woocommerce_single_product_summary', 'nm_single_product_summary_open', 1 );
/* Summary: Divider tags */
add_action( 'woocommerce_single_product_summary', 'nm_single_product_summary_divider', 15 );
/* Summary: Closing tag */
add_action( 'woocommerce_single_product_summary', 'nm_single_product_summary_close', 100 );


/* Sale flash */
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );


/* Rating */
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 21 );


/* Meta */
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
if ( $nm_theme_options['product_meta_layout'] == 'summary' ) {
    add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 58 );
} else {
    add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_meta', 12 );
}


/* Tabs */
if ( $nm_theme_options['product_tabs_layout'] == 'summary' ) {
    remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
    add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 55 );
}


/* Layout */
$product_layout = get_post_meta( $product->get_id(), 'nm_product_layout', true );
$nm_globals['product_layout'] = ( $product_layout !== '' ) ? $product_layout : $nm_theme_options['product_layout'];

/* Layout: "Pin" details */
$product_details_pin = apply_filters( 'nm_product_layout_scroll_pin_details', true );
if ( $product_details_pin && strpos( $nm_globals['product_layout'], 'scroll' ) !== false ) {
    nm_add_page_include( 'product-layout-scroll' );
    
    $summary_pin_wrapper_open_escaped = '<div id="nm-summary-pin">';
    $summary_pin_wrapper_close_escaped = '</div>';
} else {
    $summary_pin_wrapper_open_escaped = '';
    $summary_pin_wrapper_close_escaped = '';
}


/* Classes */
// Main container
$post_class = 'nm-single-product layout-' . $nm_globals['product_layout'];
// Gallery column
$post_class .= ' gallery-col-' . $nm_theme_options['product_image_column_size'];
// Summary column
$summary_column_size = 12 - intval( $nm_theme_options['product_image_column_size'] );
$post_class .= ' summary-col-' . $summary_column_size;
// Thumbnails
$post_class .= ( $nm_globals['product_layout'] == 'default-thumbs-h' ) ? ' thumbnails-horizontal' : ' thumbnails-vertical';
// Background color
$post_class .= ( $nm_theme_options['single_product_background_color'] == 'transparent' ) ? ' no-bg-color' : ' has-bg-color';
// Meta
$post_class .= ( isset( $nm_theme_options['product_meta_layout'] ) && ! empty( $nm_theme_options['product_meta_layout'] ) ) ? ' meta-layout-' . $nm_theme_options['product_meta_layout'] : ' meta-layout-default';
// Tabs
$post_class .= ( isset( $nm_theme_options['product_tabs_layout'] ) && ! empty( $nm_theme_options['product_tabs_layout'] ) ) ? ' tabs-layout-' . $nm_theme_options['product_tabs_layout'] : ' tabs-layout-default';
    

/**
 * Hook: woocommerce_before_single_product.
 *
 * @hooked woocommerce_output_all_notices - 10
 */
do_action( 'woocommerce_before_single_product' );

if ( post_password_required() ) {
    echo get_the_password_form();
    return;
}
?>

<div id="product-<?php the_ID(); ?>" <?php wc_product_class( $post_class, $product ); ?>>
    <div class="nm-single-product-bg clear">
    
        <?php wc_get_template( 'single-product/breadcrumb_nm.php' ); ?>
        
        <?php nm_print_shop_notices(); ?>

        <div class="nm-single-product-showcase">
            <div class="nm-single-product-summary-row nm-row">
                <div class="nm-single-product-summary-col col-xs-12">
                    <?php
                    /**
                     * Hook: woocommerce_before_single_product_summary.
                     *
                     * @hooked woocommerce_show_product_sale_flash - 10
                     * @hooked woocommerce_show_product_images - 20
                     */
                    do_action( 'woocommerce_before_single_product_summary' );
                    ?>

                    <div class="summary entry-summary">
                        <?php echo $summary_pin_wrapper_open_escaped; ?>
                        <?php
                        /**
                         * Hook: Woocommerce_single_product_summary.
                         *
                         * @hooked woocommerce_template_single_title - 5
                         * @hooked woocommerce_template_single_rating - 10
                         * @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
                         * @hooked WC_Structured_Data::generate_product_data() - 60
                         */
                        do_action( 'woocommerce_single_product_summary' );
                        ?>
                        <?php echo $summary_pin_wrapper_close_escaped; ?>
                    </div>
                </div>
            </div>
        </div>
    
    </div>
        
	<?php
    /**
     * Hook: woocommerce_after_single_product_summary.
     *
     * @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' );
	?>
</div>

<?php do_action( 'woocommerce_after_single_product' ); ?>