Title: Fatal error
Last modified: May 31, 2022

---

# Fatal error

 *  Resolved [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/)
 * Hi.
 * I have now Fatal error with Woocommerce plugin.
 * Here is the repport :
 *     ```
       ### WordPress Environment ###
   
       WordPress address (URL): https://www.poirriez.com
       Site address (URL): https://www.poirriez.com
       WC Version: 6.5.1
       REST API Version: ✔ 6.5.1
       WC Blocks Version: ✔ 7.4.3
       Action Scheduler Version: ✔ 3.4.0
       Log Directory Writable: ✔
       WP Version: 6.0
       WP Multisite: –
       WP Memory Limit: 512 Mo
       WP Debug Mode: –
       WP Cron: ✔
       Language: fr_FR
       External object cache: –
   
       ### Server Environment ###
   
       Server Info: Apache
       PHP Version: 8.1.0
       PHP Post Max Size: 130 Mo
       PHP Time Limit: 165
       PHP Max Input Vars: 16000
       cURL Version: 7.64.0
       OpenSSL/1.1.1n
   
       SUHOSIN Installed: –
       MySQL Version: 5.6.50-log
       Max Upload Size: 128 Mo
       Default Timezone is UTC: ❌ La timezone par défaut est Europe/Paris - doit être UTC
       fsockopen/cURL: ✔
       SoapClient: ✔
       DOMDocument: ✔
       GZip: ✔
       Multibyte String: ✔
       Remote Post: ✔
       Remote Get: ✔
   
       ### Database ###
   
       WC Database Version: 6.5.1
       WC Database Prefix: mod74_
       Taille totale de la base de données: 22.64MB
       Taille de la base de données: 15.87MB
       Taille de l’index: 6.77MB
       mod74_woocommerce_sessions: Données : 1.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_woocommerce_api_keys: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_woocommerce_attribute_taxonomies: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_woocommerce_downloadable_product_permissions: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB
       mod74_woocommerce_order_items: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_woocommerce_order_itemmeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_woocommerce_tax_rates: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB
       mod74_woocommerce_tax_rate_locations: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_woocommerce_shipping_zones: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_woocommerce_shipping_zone_locations: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_woocommerce_shipping_zone_methods: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_woocommerce_payment_tokens: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_woocommerce_payment_tokenmeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_woocommerce_log: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_actionscheduler_actions: Données : 0.23MB + Index : 0.31MB + Moteur InnoDB
       mod74_actionscheduler_claims: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_actionscheduler_groups: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_actionscheduler_logs: Données : 0.19MB + Index : 0.17MB + Moteur InnoDB
       mod74_ce4wp_abandoned_checkout: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_commentmeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_comments: Données : 0.05MB + Index : 0.09MB + Moteur InnoDB
       mod74_defender_audit_log: Données : 0.02MB + Index : 0.08MB + Moteur InnoDB
       mod74_defender_email_log: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_defender_lockout: Données : 2.52MB + Index : 4.03MB + Moteur InnoDB
       mod74_defender_lockout_log: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB
       mod74_defender_scan: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_defender_scan_item: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_frmt_form_entry: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB
       mod74_frmt_form_entry_meta: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB
       mod74_frmt_form_views: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB
       mod74_links: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_mailchimp_carts: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_mailchimp_jobs: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_options: Données : 4.02MB + Index : 0.08MB + Moteur InnoDB
       mod74_postmeta: Données : 1.48MB + Index : 0.41MB + Moteur InnoDB
       mod74_posts: Données : 5.27MB + Index : 0.22MB + Moteur InnoDB
       mod74_termmeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_terms: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_term_relationships: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_term_taxonomy: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_usermeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_users: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB
       mod74_wc_admin_notes: Données : 0.08MB + Index : 0.00MB + Moteur InnoDB
       mod74_wc_admin_note_actions: Données : 0.05MB + Index : 0.02MB + Moteur InnoDB
       mod74_wc_category_lookup: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_wc_customer_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_wc_download_log: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_wc_order_coupon_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_wc_order_product_lookup: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB
       mod74_wc_order_stats: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB
       mod74_wc_order_tax_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB
       mod74_wc_product_attributes_lookup: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_wc_product_download_directories: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_wc_product_meta_lookup: Données : 0.02MB + Index : 0.09MB + Moteur InnoDB
       mod74_wc_rate_limits: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_wc_reserved_stock: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB
       mod74_wc_tax_rate_classes: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
       mod74_wc_webhooks: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB
   
       ### Post Type Counts ###
   
       attachment: 236
       customize_changeset: 2
       ecwd_calendar: 1
       ecwd_event: 2
       ecwd_venue: 2
       extb_post_footer: 1
       extb_post_header: 2
       extb_post_json: 10
       extb_post_main: 4
       extb_post_sidebar: 2
       nav_menu_item: 24
       page: 22
       post: 2
       product: 39
       revision: 415
       shop_order: 2
       tribe_events: 105
       tribe_organizer: 1
       tribe_venue: 1
       tribe-ea-record: 2
       user_request: 1
       wp_global_styles: 1
   
       ### Security ###
   
       Secure connection (HTTPS): ✔
       Hide errors from visitors: ✔
   
       ### Active Plugins (11) ###
   
       Akismet Anti-Spam: par Automattic – 4.2.4
       Colibri Page Builder: par ExtendThemes – 1.0.211
       Defender: par WPMU DEV – 2.8.3
       Event Calendar WD: par 10Web – 1.1.55
       Facebook for WooCommerce: par Facebook – 2.6.14
       Forminator: par WPMU DEV – 1.15.14
       Jetpack: par Automattic – 10.9.1
       Google Ads & Marketing par Kliken: par Kliken – 1.0.8
       Mailchimp for WooCommerce: par Mailchimp – 2.6.2
       WooCommerce PayPal Payments: par WooCommerce – 1.8.0
       WooCommerce: par Automattic – 6.5.1
   
       ### Inactive Plugins (3) ###
   
       Creative Mail by Constant Contact: par Constant Contact – 1.5.3
       Hummingbird: par WPMU DEV – 3.3.2
       The Events Calendar: par The Events Calendar – 5.15.0.1
   
       ### Settings ###
   
       API Enabled: –
       Force SSL: –
       Currency: EUR (€)
       Currency Position: right_space
       Thousand Separator: .
       Decimal Separator: ,
       Number of Decimals: 2
       Taxonomies: Product Types: external (external)
       grouped (grouped)
       simple (simple)
       variable (variable)
   
       Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
       exclude-from-search (exclude-from-search)
       featured (featured)
       outofstock (outofstock)
       rated-1 (rated-1)
       rated-2 (rated-2)
       rated-3 (rated-3)
       rated-4 (rated-4)
       rated-5 (rated-5)
   
       Connected to WooCommerce.com: –
       Enforce Approved Product Download Directories: –
   
       ### WC Pages ###
   
       Base de la boutique: #182 - /boutique/
       Panier: #183 - /panier/
       Commander: #184 - /commander/
       Mon compte: #185 - /mon-compte/
       Conditions générales de vente et d’utilisation: #364 - /mentions-legales/
   
       ### Theme ###
   
       Name: Colibri WP
       Version: 1.0.88
       Author URL: https://colibriwp.com/
       Child Theme: ❌ – Si vous modifiez WooCommerce sur un thème parent que vous n’avez pas construit personnellement
       nous vous recommandons d’utiliser un thème enfant. Voir : Comment créer un thème enfant
   
       WooCommerce Support: ✔
   
       ### Templates ###
   
       Archive Template: Votre thème a un fichier woocommerce.php
       vous ne serez pas en mesure de substituer le modèle personnalisé woocommerce/archive-product.php étant donné que woocommerce.php a la priorité sur archive-product.php. Ceci vise à prévenir les problèmes d’affichage.
   
       Overrides: –
   
       ### WooCommerce PayPal Payments ###
   
       Onboarded: ✔
       Shop country code: FR
       WooCommerce currency supported: ✔
       PayPal card processing available in country: ✔
       Pay Later messaging available in country: ✔
       Webhook status: –
       Vault enabled: ✔
       Logging enabled: –
       Reference Transactions: –
       Used PayPal Checkout plugin: –
   
       ### Action Scheduler ###
   
       Terminé: 744
       Oldest: 2022-04-30 16:12:31 +0200
       Newest: 2022-05-31 14:07:12 +0200
   
       Échoué: 1
       Oldest: –
       Newest: –
   
       En attente: 1
       Oldest: 2022-06-01 14:07:12 +0200
       Newest: 2022-06-01 14:07:12 +0200
   
       ### Status report information ###
   
       Generated at: 2022-05-31 15:41:29 +02:00
       ```
   
 * Can you help ?

Viewing 15 replies - 1 through 15 (of 18 total)

1 [2](https://wordpress.org/support/topic/fatal-error-4175/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/fatal-error-4175/page/2/?output_format=md)

 *  [MayKato](https://wordpress.org/support/users/maykato/)
 * (@maykato)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15695984)
 * Hello,
 * > I have now Fatal error with Woocommerce plugin.
 * We need more information on the issue you are experiencing. Can you access the
   admin page? If yes, please share a copy of the fatal error log found under **
   WooCommerce > System Status > Logs** (if available).
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15696868)
 * That is not the repport i sent above ?
 *  [aetta](https://wordpress.org/support/users/chiape/)
 * (@chiape)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15697029)
 * Hi [@epoirriez](https://wordpress.org/support/users/epoirriez/)!
 * It was helpful but that’s the System Status Report! The one that my colleague
   asked for is your Fatal Errors log!
 * These logs can be useful when investigating issues with your site!
 * As mentioned above you can find them by navigating thought: _WooCommerce > Status
   > Logs_
 * If, by chance, there are any, paste them here on your response!
 * I hope to hear from you soon! All the best,
 *  [jonathancaraballo](https://wordpress.org/support/users/jonathancaraballo/)
 * (@jonathancaraballo)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15697555)
 * This WooCommerce is filled with bugs. Mine is not working for a different reason.
   I’m just going to try something else for my E-Commerce site.
 *  [Margaret S. woo-hc](https://wordpress.org/support/users/margaretwporg/)
 * (@margaretwporg)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15697575)
 * Hi [@jonathancaraballo](https://wordpress.org/support/users/jonathancaraballo/)
 * I understand you are disappointed with WooCommerce due to some problems you might
   be facing on your web store.
 * We would like to check what may be the reason behind the problems and would be
   glad to help you get rid of those. Millions of people are using WooCommerce successfully.
 * Would you mind opening a new topic with a brief description of your issue? You
   can open a new thread here: [https://wordpress.org/support/plugin/woocommerce/#new-topic-0](https://wordpress.org/support/plugin/woocommerce/#new-topic-0)
 * Thanks
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15697665)
 * Hi, i am in debug mode in WordPress and i had this :
 *     ```
       Une boîte à outils eCommerce qui vous aide à tout vendre. Magnifiquement.
       Version 6.5.1 | Par Automattic | Afficher les détails
   
       Cette extension n’a pas pu se charger correctement et a été mise en pause dans le cadre du mode de récupération.
   
       Une erreur de type E_ERROR a été causée dans la ligne 332 du fichier /home/poirrii/www/wp-content/plugins/woocommerce/src/Admin/API/Reports/TimeInterval.php. Message d’erreur : Maximum execution time of 165 seconds exceeded
       ```
   
 * Here is the Timeinterval.php :
 *     ```
       <?php
       /**
        * Class for time interval and numeric range handling for reports.
        */
   
       namespace Automattic\WooCommerce\Admin\API\Reports;
   
       defined( 'ABSPATH' ) || exit;
   
       /**
        * Date & time interval and numeric range handling class for Reporting API.
        */
       class TimeInterval {
   
       	/**
       	 * Format string for ISO DateTime formatter.
       	 *
       	 * @var string
       	 */
       	public static $iso_datetime_format = 'Y-m-d\TH:i:s';
   
       	/**
       	 * Format string for use in SQL queries.
       	 *
       	 * @var string
       	 */
       	public static $sql_datetime_format = 'Y-m-d H:i:s';
   
       	/**
       	 * Converts local datetime to GMT/UTC time.
       	 *
       	 * @param string $datetime_string String representation of local datetime.
       	 * @return DateTime
       	 */
       	public static function convert_local_datetime_to_gmt( $datetime_string ) {
       		$datetime = new \DateTime( $datetime_string, new \DateTimeZone( wc_timezone_string() ) );
       		$datetime->setTimezone( new \DateTimeZone( 'GMT' ) );
       		return $datetime;
       	}
   
       	/**
       	 * Returns default 'before' parameter for the reports.
       	 *
       	 * @return DateTime
       	 */
       	public static function default_before() {
       		$datetime = new \WC_DateTime();
       		// Set local timezone or offset.
       		if ( get_option( 'timezone_string' ) ) {
       			$datetime->setTimezone( new \DateTimeZone( wc_timezone_string() ) );
       		} else {
       			$datetime->set_utc_offset( wc_timezone_offset() );
       		}
       		return $datetime;
       	}
   
       	/**
       	 * Returns default 'after' parameter for the reports.
       	 *
       	 * @return DateTime
       	 */
       	public static function default_after() {
       		$now       = time();
       		$week_back = $now - WEEK_IN_SECONDS;
   
       		$datetime = new \WC_DateTime();
       		$datetime->setTimestamp( $week_back );
       		// Set local timezone or offset.
       		if ( get_option( 'timezone_string' ) ) {
       			$datetime->setTimezone( new \DateTimeZone( wc_timezone_string() ) );
       		} else {
       			$datetime->set_utc_offset( wc_timezone_offset() );
       		}
       		return $datetime;
       	}
   
       	/**
       	 * Returns date format to be used as grouping clause in SQL.
       	 *
       	 * @param string $time_interval Time interval.
       	 * @param string $table_name Name of the db table relevant for the date constraint.
       	 * @return mixed
       	 */
       	public static function db_datetime_format( $time_interval, $table_name ) {
       		$first_day_of_week = absint( get_option( 'start_of_week' ) );
   
       		if ( 1 === $first_day_of_week ) {
       			// Week begins on Monday, ISO 8601.
       			$week_format = "DATE_FORMAT({$table_name}.date_created, '%x-%v')";
       		} else {
       			// Week begins on day other than specified by ISO 8601, needs to be in sync with function simple_week_number.
       			$week_format = "CONCAT(YEAR({$table_name}.date_created), '-', LPAD( FLOOR( ( DAYOFYEAR({$table_name}.date_created) + ( ( DATE_FORMAT(MAKEDATE(YEAR({$table_name}.date_created),1), '%w') - $first_day_of_week + 7 ) % 7 ) - 1 ) / 7  ) + 1 , 2, '0'))";
   
       		}
   
       		// Whenever this is changed, double check method time_interval_id to make sure they are in sync.
       		$mysql_date_format_mapping = array(
       			'hour'    => "DATE_FORMAT({$table_name}.date_created, '%Y-%m-%d %H')",
       			'day'     => "DATE_FORMAT({$table_name}.date_created, '%Y-%m-%d')",
       			'week'    => $week_format,
       			'month'   => "DATE_FORMAT({$table_name}.date_created, '%Y-%m')",
       			'quarter' => "CONCAT(YEAR({$table_name}.date_created), '-', QUARTER({$table_name}.date_created))",
       			'year'    => "YEAR({$table_name}.date_created)",
   
       		);
   
       		return $mysql_date_format_mapping[ $time_interval ];
       	}
   
       	/**
       	 * Returns quarter for the DateTime.
       	 *
       	 * @param DateTime $datetime Local date & time.
       	 * @return int|null
       	 */
       	public static function quarter( $datetime ) {
       		switch ( (int) $datetime->format( 'm' ) ) {
       			case 1:
       			case 2:
       			case 3:
       				return 1;
       			case 4:
       			case 5:
       			case 6:
       				return 2;
       			case 7:
       			case 8:
       			case 9:
       				return 3;
       			case 10:
       			case 11:
       			case 12:
       				return 4;
   
       		}
       		return null;
       	}
   
       	/**
       	 * Returns simple week number for the DateTime, for week starting on $first_day_of_week.
       	 *
       	 * The first week of the year is considered to be the week containing January 1.
       	 * The second week starts on the next $first_day_of_week.
       	 *
       	 * @param DateTime $datetime          Local date for which the week number is to be calculated.
       	 * @param int      $first_day_of_week 0 for Sunday to 6 for Saturday.
       	 * @return int
       	 */
       	public static function simple_week_number( $datetime, $first_day_of_week ) {
       		$beg_of_year_day          = new \DateTime( "{$datetime->format('Y')}-01-01" );
       		$adj_day_beg_of_year      = ( (int) $beg_of_year_day->format( 'w' ) - $first_day_of_week + 7 ) % 7;
       		$days_since_start_of_year = (int) $datetime->format( 'z' ) + 1;
   
       		return (int) floor( ( ( $days_since_start_of_year + $adj_day_beg_of_year - 1 ) / 7 ) ) + 1;
       	}
   
       	/**
       	 * Returns ISO 8601 week number for the DateTime, if week starts on Monday,
       	 * otherwise returns simple week number.
       	 *
       	 * @see TimeInterval::simple_week_number()
       	 *
       	 * @param DateTime $datetime          Local date for which the week number is to be calculated.
       	 * @param int      $first_day_of_week 0 for Sunday to 6 for Saturday.
       	 * @return int
       	 */
       	public static function week_number( $datetime, $first_day_of_week ) {
       		if ( 1 === $first_day_of_week ) {
       			$week_number = (int) $datetime->format( 'W' );
       		} else {
       			$week_number = self::simple_week_number( $datetime, $first_day_of_week );
       		}
       		return $week_number;
       	}
   
       	/**
       	 * Returns time interval id for the DateTime.
       	 *
       	 * @param string   $time_interval Time interval type (week, day, etc).
       	 * @param DateTime $datetime      Date & time.
       	 * @return string
       	 */
       	public static function time_interval_id( $time_interval, $datetime ) {
       		// Whenever this is changed, double check method db_datetime_format to make sure they are in sync.
       		$php_time_format_for = array(
       			'hour'    => 'Y-m-d H',
       			'day'     => 'Y-m-d',
       			'week'    => 'o-W',
       			'month'   => 'Y-m',
       			'quarter' => 'Y-' . self::quarter( $datetime ),
       			'year'    => 'Y',
       		);
   
       		// If the week does not begin on Monday.
       		$first_day_of_week = absint( get_option( 'start_of_week' ) );
   
       		if ( 'week' === $time_interval && 1 !== $first_day_of_week ) {
       			$week_no = self::simple_week_number( $datetime, $first_day_of_week );
       			$week_no = str_pad( $week_no, 2, '0', STR_PAD_LEFT );
       			$year_no = $datetime->format( 'Y' );
       			return "$year_no-$week_no";
       		}
   
       		return $datetime->format( $php_time_format_for[ $time_interval ] );
       	}
   
       	/**
       	 * Calculates number of time intervals between two dates, closed interval on both sides.
       	 *
       	 * @param DateTime $start_datetime Start date & time.
       	 * @param DateTime $end_datetime End date & time.
       	 * @param string   $interval Time interval increment, e.g. hour, day, week.
       	 *
       	 * @return int
       	 */
       	public static function intervals_between( $start_datetime, $end_datetime, $interval ) {
       		switch ( $interval ) {
       			case 'hour':
       				$end_timestamp   = (int) $end_datetime->format( 'U' );
       				$start_timestamp = (int) $start_datetime->format( 'U' );
       				$addendum        = 0;
       				// modulo HOUR_IN_SECONDS would normally work, but there are non-full hour timezones, e.g. Nepal.
       				$start_min_sec = (int) $start_datetime->format( 'i' ) * MINUTE_IN_SECONDS + (int) $start_datetime->format( 's' );
       				$end_min_sec   = (int) $end_datetime->format( 'i' ) * MINUTE_IN_SECONDS + (int) $end_datetime->format( 's' );
       				if ( $end_min_sec < $start_min_sec ) {
       					$addendum = 1;
       				}
       				$diff_timestamp = $end_timestamp - $start_timestamp;
   
       				return (int) floor( ( (int) $diff_timestamp ) / HOUR_IN_SECONDS ) + 1 + $addendum;
       			case 'day':
       				$end_timestamp      = (int) $end_datetime->format( 'U' );
       				$start_timestamp    = (int) $start_datetime->format( 'U' );
       				$addendum           = 0;
       				$end_hour_min_sec   = (int) $end_datetime->format( 'H' ) * HOUR_IN_SECONDS + (int) $end_datetime->format( 'i' ) * MINUTE_IN_SECONDS + (int) $end_datetime->format( 's' );
       				$start_hour_min_sec = (int) $start_datetime->format( 'H' ) * HOUR_IN_SECONDS + (int) $start_datetime->format( 'i' ) * MINUTE_IN_SECONDS + (int) $start_datetime->format( 's' );
       				if ( $end_hour_min_sec < $start_hour_min_sec ) {
       					$addendum = 1;
       				}
       				$diff_timestamp = $end_timestamp - $start_timestamp;
   
       				return (int) floor( ( (int) $diff_timestamp ) / DAY_IN_SECONDS ) + 1 + $addendum;
       			case 'week':
       				// @todo Optimize? approximately day count / 7, but year end is tricky, a week can have fewer days.
       				$week_count = 0;
       				do {
       					$start_datetime = self::next_week_start( $start_datetime );
       					$week_count++;
       				} while ( $start_datetime <= $end_datetime );
       				return $week_count;
       			case 'month':
       				// Year diff in months: (end_year - start_year - 1) * 12.
       				$year_diff_in_months = ( (int) $end_datetime->format( 'Y' ) - (int) $start_datetime->format( 'Y' ) - 1 ) * 12;
       				// All the months in end_date year plus months from X to 12 in the start_date year.
       				$month_diff = (int) $end_datetime->format( 'n' ) + ( 12 - (int) $start_datetime->format( 'n' ) );
       				// Add months for number of years between end_date and start_date.
       				$month_diff += $year_diff_in_months + 1;
       				return $month_diff;
       			case 'quarter':
       				// Year diff in quarters: (end_year - start_year - 1) * 4.
       				$year_diff_in_quarters = ( (int) $end_datetime->format( 'Y' ) - (int) $start_datetime->format( 'Y' ) - 1 ) * 4;
       				// All the quarters in end_date year plus quarters from X to 4 in the start_date year.
       				$quarter_diff = self::quarter( $end_datetime ) + ( 4 - self::quarter( $start_datetime ) );
       				// Add quarters for number of years between end_date and start_date.
       				$quarter_diff += $year_diff_in_quarters + 1;
       				return $quarter_diff;
       			case 'year':
       				$year_diff = (int) $end_datetime->format( 'Y' ) - (int) $start_datetime->format( 'Y' );
       				return $year_diff + 1;
       		}
       		return 0;
       	}
   
       	/**
       	 * Returns a new DateTime object representing the next hour start/previous hour end if reversed.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_hour_start( $datetime, $reversed = false ) {
       		$hour_increment         = $reversed ? 0 : 1;
       		$timestamp              = (int) $datetime->format( 'U' );
       		$seconds_into_hour      = (int) $datetime->format( 'i' ) * MINUTE_IN_SECONDS + (int) $datetime->format( 's' );
       		$hours_offset_timestamp = $timestamp + ( $hour_increment * HOUR_IN_SECONDS - $seconds_into_hour );
   
       		if ( $reversed ) {
       			$hours_offset_timestamp --;
       		}
   
       		$hours_offset_time = new \DateTime();
       		$hours_offset_time->setTimestamp( $hours_offset_timestamp );
       		$hours_offset_time->setTimezone( new \DateTimeZone( wc_timezone_string() ) );
       		return $hours_offset_time;
       	}
   
       	/**
       	 * Returns a new DateTime object representing the next day start, or previous day end if reversed.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_day_start( $datetime, $reversed = false ) {
       		$oneday       = new \DateInterval( 'P1D' );
       		$new_datetime = clone $datetime;
   
       		if ( $reversed ) {
       			$new_datetime->sub( $oneday );
       			$new_datetime->setTime( 23, 59, 59 );
       		} else {
       			$new_datetime->add( $oneday );
       			$new_datetime->setTime( 0, 0, 0 );
       		}
   
       		return $new_datetime;
       	}
   
       	/**
       	 * Returns DateTime object representing the next week start, or previous week end if reversed.
       	 *
       	 * The next week start is the first day of the next week at 00:00:00.
       	 * The previous week end is the last day of the previous week at 23:59:59.
       	 * The start day is determined by the "start_of_week" wp_option.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_week_start( $datetime, $reversed = false ) {
       		$seven_days = new \DateInterval( 'P7D' );
       		$start_end  = get_weekstartend( $datetime->format( 'Y-m-d' ) );
   
       		if ( $reversed ) {
       			return \DateTime::createFromFormat( 'U', $start_end['end'] )->sub( $seven_days );
       		}
       		return \DateTime::createFromFormat( 'U', $start_end['start'] )->add( $seven_days );
       	}
   
       	/**
       	 * Returns a new DateTime object representing the next month start, or previous month end if reversed.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_month_start( $datetime, $reversed = false ) {
       		$month_increment = 1;
       		$year            = $datetime->format( 'Y' );
       		$month           = (int) $datetime->format( 'm' );
   
       		if ( $reversed ) {
       			$beg_of_month_datetime       = new \DateTime( "$year-$month-01 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
       			$timestamp                   = (int) $beg_of_month_datetime->format( 'U' );
       			$end_of_prev_month_timestamp = $timestamp - 1;
       			$datetime->setTimestamp( $end_of_prev_month_timestamp );
       		} else {
       			$month += $month_increment;
       			if ( $month > 12 ) {
       				$month = 1;
       				$year ++;
       			}
       			$day      = '01';
       			$datetime = new \DateTime( "$year-$month-$day 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
       		}
   
       		return $datetime;
       	}
   
       	/**
       	 * Returns a new DateTime object representing the next quarter start, or previous quarter end if reversed.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_quarter_start( $datetime, $reversed = false ) {
       		$year  = $datetime->format( 'Y' );
       		$month = (int) $datetime->format( 'n' );
   
       		switch ( $month ) {
       			case 1:
       			case 2:
       			case 3:
       				if ( $reversed ) {
       					$month = 1;
       				} else {
       					$month = 4;
       				}
       				break;
       			case 4:
       			case 5:
       			case 6:
       				if ( $reversed ) {
       					$month = 4;
       				} else {
       					$month = 7;
       				}
       				break;
       			case 7:
       			case 8:
       			case 9:
       				if ( $reversed ) {
       					$month = 7;
       				} else {
       					$month = 10;
       				}
       				break;
       			case 10:
       			case 11:
       			case 12:
       				if ( $reversed ) {
       					$month = 10;
       				} else {
       					$month = 1;
       					$year ++;
       				}
       				break;
       		}
       		$datetime = new \DateTime( "$year-$month-01 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
       		if ( $reversed ) {
       			$timestamp                   = (int) $datetime->format( 'U' );
       			$end_of_prev_month_timestamp = $timestamp - 1;
       			$datetime->setTimestamp( $end_of_prev_month_timestamp );
       		}
   
       		return $datetime;
       	}
   
       	/**
       	 * Return a new DateTime object representing the next year start, or previous year end if reversed.
       	 *
       	 * @param DateTime $datetime Date and time.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function next_year_start( $datetime, $reversed = false ) {
       		$year_increment = 1;
       		$year           = (int) $datetime->format( 'Y' );
       		$month          = '01';
       		$day            = '01';
   
       		if ( $reversed ) {
       			$datetime                   = new \DateTime( "$year-$month-$day 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
       			$timestamp                  = (int) $datetime->format( 'U' );
       			$end_of_prev_year_timestamp = $timestamp - 1;
       			$datetime->setTimestamp( $end_of_prev_year_timestamp );
       		} else {
       			$year    += $year_increment;
       			$datetime = new \DateTime( "$year-$month-$day 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
       		}
   
       		return $datetime;
       	}
   
       	/**
       	 * Returns beginning of next time interval for provided DateTime.
       	 *
       	 * E.g. for current DateTime, beginning of next day, week, quarter, etc.
       	 *
       	 * @param DateTime $datetime      Date and time.
       	 * @param string   $time_interval Time interval, e.g. week, day, hour.
       	 * @param bool     $reversed Going backwards in time instead of forward.
       	 * @return DateTime
       	 */
       	public static function iterate( $datetime, $time_interval, $reversed = false ) {
       		return call_user_func( array( __CLASS__, "next_{$time_interval}_start" ), $datetime, $reversed );
       	}
   
       	/**
       	 * Returns expected number of items on the page in case of date ordering.
       	 *
       	 * @param int $expected_interval_count Expected number of intervals in total.
       	 * @param int $items_per_page          Number of items per page.
       	 * @param int $page_no                 Page number.
       	 *
       	 * @return float|int
       	 */
       	public static function expected_intervals_on_page( $expected_interval_count, $items_per_page, $page_no ) {
       		$total_pages = (int) ceil( $expected_interval_count / $items_per_page );
       		if ( $page_no < $total_pages ) {
       			return $items_per_page;
       		} elseif ( $page_no === $total_pages ) {
       			return $expected_interval_count - ( $page_no - 1 ) * $items_per_page;
       		} else {
       			return 0;
       		}
       	}
   
       	/**
       	 * Returns true if there are any intervals that need to be filled in the response.
       	 *
       	 * @param int    $expected_interval_count Expected number of intervals in total.
       	 * @param int    $db_records              Total number of records for given period in the database.
       	 * @param int    $items_per_page          Number of items per page.
       	 * @param int    $page_no                 Page number.
       	 * @param string $order                   asc or desc.
       	 * @param string $order_by                Column by which the result will be sorted.
       	 * @param int    $intervals_count         Number of records for given (possibly shortened) time interval.
       	 *
       	 * @return bool
       	 */
       	public static function intervals_missing( $expected_interval_count, $db_records, $items_per_page, $page_no, $order, $order_by, $intervals_count ) {
       		if ( $expected_interval_count <= $db_records ) {
       			return false;
       		}
       		if ( 'date' === $order_by ) {
       			$expected_intervals_on_page = self::expected_intervals_on_page( $expected_interval_count, $items_per_page, $page_no );
       			return $intervals_count < $expected_intervals_on_page;
       		}
       		if ( 'desc' === $order ) {
       			return $page_no > floor( $db_records / $items_per_page );
       		}
       		if ( 'asc' === $order ) {
       			return $page_no <= ceil( ( $expected_interval_count - $db_records ) / $items_per_page );
       		}
       		// Invalid ordering.
       		return false;
       	}
   
       	/**
       	 * Normalize "*_between" parameters to "*_min" and "*_max" for numeric values
       	 * and "*_after" and "*_before" for date values.
       	 *
       	 * @param array        $request Query params from REST API request.
       	 * @param string|array $param_names One or more param names to handle. Should not include "_between" suffix.
       	 * @param bool         $is_date Boolean if the param is date is related.
       	 * @return array Normalized query values.
       	 */
       	public static function normalize_between_params( $request, $param_names, $is_date ) {
       		if ( ! is_array( $param_names ) ) {
       			$param_names = array( $param_names );
       		}
   
       		$normalized = array();
   
       		foreach ( $param_names as $param_name ) {
       			if ( ! is_array( $request[ $param_name . '_between' ] ) ) {
       				continue;
       			}
   
       			$range = $request[ $param_name . '_between' ];
   
       			if ( 2 !== count( $range ) ) {
       				continue;
       			}
   
       			$min = $is_date ? '_after' : '_min';
       			$max = $is_date ? '_before' : '_max';
   
       			if ( $range[0] < $range[1] ) {
       				$normalized[ $param_name . $min ] = $range[0];
       				$normalized[ $param_name . $max ] = $range[1];
       			} else {
       				$normalized[ $param_name . $min ] = $range[1];
       				$normalized[ $param_name . $max ] = $range[0];
       			}
       		}
   
       		return $normalized;
       	}
   
       	/**
       	 * Validate a "*_between" range argument (an array with 2 numeric items).
       	 *
       	 * @param  mixed           $value Parameter value.
       	 * @param  WP_REST_Request $request REST Request.
       	 * @param  string          $param Parameter name.
       	 * @return WP_Error|boolean
       	 */
       	public static function rest_validate_between_numeric_arg( $value, $request, $param ) {
       		if ( ! wp_is_numeric_array( $value ) ) {
       			return new \WP_Error(
       				'rest_invalid_param',
       				/* translators: 1: parameter name */
       				sprintf( __( '%1$s is not a numerically indexed array.', 'woocommerce' ), $param )
       			);
       		}
   
       		if (
       			2 !== count( $value ) ||
       			! is_numeric( $value[0] ) ||
       			! is_numeric( $value[1] )
       		) {
       			return new \WP_Error(
       				'rest_invalid_param',
       				/* translators: %s: parameter name */
       				sprintf( __( '%s must contain 2 numbers.', 'woocommerce' ), $param )
       			);
       		}
   
       		return true;
       	}
   
       	/**
       	 * Validate a "*_between" range argument (an array with 2 date items).
       	 *
       	 * @param  mixed           $value Parameter value.
       	 * @param  WP_REST_Request $request REST Request.
       	 * @param  string          $param Parameter name.
       	 * @return WP_Error|boolean
       	 */
       	public static function rest_validate_between_date_arg( $value, $request, $param ) {
       		if ( ! wp_is_numeric_array( $value ) ) {
       			return new \WP_Error(
       				'rest_invalid_param',
       				/* translators: 1: parameter name */
       				sprintf( __( '%1$s is not a numerically indexed array.', 'woocommerce' ), $param )
       			);
       		}
   
       		if (
       			2 !== count( $value ) ||
       			! rest_parse_date( $value[0] ) ||
       			! rest_parse_date( $value[1] )
       		) {
       			return new \WP_Error(
       				'rest_invalid_param',
       				/* translators: %s: parameter name */
       				sprintf( __( '%s must contain 2 valid dates.', 'woocommerce' ), $param )
       			);
       		}
   
       		return true;
       	}
       }
       ```
   
 * Is there any way to get the Log file in debug mode ?
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15697673)
 * Hi again.
    I have the Woocommerce Log :
 *     ```
       2022-05-10T05:33:44+00:00 CRITICAL Uncaught Error: Class 'WooCommerce\PayPalCommerce\Webhooks\WebhookInfoStorage' not found in /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-webhooks/services.php:197
       Stack trace:
       #0 /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/vendor/dhii/containers/src/DelegatingContainer.php(117): WooCommerce\PayPalCommerce\Webhooks\WebhookModule::WooCommerce\PayPalCommerce\Webhooks\{closure}(Object(Dhii\Container\DelegatingContainer))
       #1 /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/vendor/dhii/containers/src/DelegatingContainer.php(56): Dhii\Container\DelegatingContainer->invokeFactory(Object(Closure))
       #2 /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-webhooks/services.php(55): Dhii\Container\DelegatingContainer->get('webhook.last-we...')
       #3 /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/vendor/dhii/containers/src/DelegatingContainer.php(117): WooCommerce\PayPalCommerce\Webhooks\WebhookModule->WooCommerce\ dans /home/poirrii/www/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-webhooks/services.php à la ligne 197
       ```
   
 * And this :
 *     ```
       fatal-errors-2022-05-26-205c40520957c0339bb107762f75a379.log Effacer le journal
   
       2022-05-26T11:06:26+02:00 CRITICAL Uncaught Error: Class "ProteusThemes\WPContentImporter2\WXRImporter" not found in /home/poirrii/www/wp-content/plugins/colibri-page-builder/src/OCDI/WXRImporter.php:12
       Stack trace:
       #0 /home/poirrii/www/wp-content/plugins/colibri-page-builder/vendor/composer/ClassLoader.php(444): include()
       #1 /home/poirrii/www/wp-content/plugins/colibri-page-builder/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/poirrii/w...')
       #2 /home/poirrii/www/wp-content/plugins/colibri-page-builder/src/OCDI/Importer.php(48): Composer\Autoload\ClassLoader->loadClass('ColibriWP\\PageB...')
       #3 /home/poirrii/www/wp-content/plugins/colibri-page-builder/src/OCDI/OneClickDemoImport.php(541): ColibriWP\PageBuilder\OCDI\Importer->__construct(Array, Object(ColibriWP\PageBuilder\OCDI\Logger))
       #4 /home/poirrii/www/wp-includes/class-wp-hook.php(307): ColibriWP\PageBuilder\OCDI\OneClickDemoImport->setup_plugin_with_filter_data('')
       #5 /home/poirrii/www/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
       #6 /home/poirrii/www/wp-includes/plugin.php(474): WP_Hook->do_action(Array)
       #7 /home/poirrii/www/wp-settings.php(565): do_action('after_setup_the...')
       #8 /home/poirrii/www/wp-config.php(92): require_once('/home/poirrii/w...')
       #9 /home/poirrii/www/wp-load.php(50): require_once('/home/poirrii/w...')
       #10 /home/poirrii/www/wp-blog-header.php(13): require_once('/home/poirrii/w...')
       #11 /home/poirrii/www/index.php(17): require('/home/poirrii/w...')
       #12 {main}
         thrown dans /home/poirrii/www/wp-content/plugins/colibri-page-builder/src/OCDI/WXRImporter.php à la ligne 12
   
       2022-05-26T11:06:41+02:00 CRITICAL Uncaught Error: Class "Forminator_Admin_AJAX" not found in /home/poirrii/www/wp-content/plugins/forminator/admin/classes/class-admin.php:50
       Stack trace:
       #0 /home/poirrii/www/wp-content/plugins/forminator/library/class-core.php(81): Forminator_Admin->__construct()
       #1 /home/poirrii/www/wp-content/plugins/forminator/library/class-core.php(61): Forminator_Core->__construct()
       #2 /home/poirrii/www/wp-content/plugins/forminator/forminator.php(403): Forminator_Core::get_instance()
       #3 /home/poirrii/www/wp-content/plugins/forminator/forminator.php(138): Forminator->init()
       #4 /home/poirrii/www/wp-content/plugins/forminator/forminator.php(116): Forminator->__construct()
       #5 /home/poirrii/www/wp-content/plugins/forminator/forminator.php(540): Forminator::get_instance()
       #6 /home/poirrii/www/wp-includes/class-wp-hook.php(307): forminator('')
       #7 /home/poirrii/www/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
       #8 /home/poirrii/www/wp-includes/plugin.php(474): WP_Hook->do_action(Array)
       #9 /home/poirrii/www/wp-settings.php(450): do_action('plugins_loaded')
       #10 /home/poirrii/www/wp-config.php(92): require_once('/home/poirrii/w...')
       #11 /home/poirrii/www/wp-load.php(50): require_once('/home/poirrii/w...')
       #12 /home/poirrii/www/wp-admin/admin-ajax.php(22): require_once('/home/poirrii/w...')
       #13 {main}
         thrown dans /home/poirrii/www/wp-content/plugins/forminator/admin/classes/class-admin.php à la ligne 50
       ```
   
 *  Plugin Support [Paulo P – a11n](https://wordpress.org/support/users/paulostp/)
 * (@paulostp)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15698054)
 * Hello,
 * Thanks for sharing the error logs.
 * The first one is from the **WooCommerce PayPal Payments** plugin, but it’s from
   May 10th, so maybe related to a previous issue that got fixed in the meantime.
 * The other error logs are both from the same moment a few days ago and are related
   to the **Colibri Page Builder** and **Forminator** plugins.
 * I’m guessing there might be an incompatibility between one or both of the plugins
   and WordPress’s latest version. I can see [a similar report](https://wordpress.org/support/topic/error-fatal-colibri/)
   in Colibri’s forum. Can you try disabling those plugins temporarily to see if
   the critical error disappears?
 * If that solves the issue, then I suggest you reach out to those plugins support
   forums, as here we’re only able to help with WooCommerce core:
 * – [https://wordpress.org/support/plugin/colibri-page-builder/](https://wordpress.org/support/plugin/colibri-page-builder/)
   –
   [https://wordpress.org/support/plugin/forminator/](https://wordpress.org/support/plugin/forminator/)
 * Please, let us know how it goes.
    -  This reply was modified 4 years ago by [Paulo P - a11n](https://wordpress.org/support/users/paulostp/).
 *  [jonathancaraballo](https://wordpress.org/support/users/jonathancaraballo/)
 * (@jonathancaraballo)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15701123)
 * [@margaretwporg](https://wordpress.org/support/users/margaretwporg/) I’ve already
   started a thread on my problem here: [https://wordpress.org/support/topic/yet-another-woocommerce-bug/#post-15698003](https://wordpress.org/support/topic/yet-another-woocommerce-bug/#post-15698003).
 *  [Margaret S. woo-hc](https://wordpress.org/support/users/margaretwporg/)
 * (@margaretwporg)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15701133)
 * Hi [@jonathancaraballo](https://wordpress.org/support/users/jonathancaraballo/)
 * That’s great. Thanks for letting us know.
 * It’ll be best if you please communicate on your own thread.
 * Thanks
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15701711)
 * I have now :
 *     ```
       2022-06-02T09:23:46+02:00 CRITICAL Uncaught Error: Failed opening required '/home/poirrii/www/wp-content/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php' (include_path='.:/usr/local/php8.1/lib/php') in /home/poirrii/www/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php:57
       Stack trace:
       #0 /home/poirrii/www/wp-includes/class-wp-hook.php(307): Jetpack_Core_Json_Api_Endpoints::register_endpoints(Object(WP_REST_Server))
       #1 /home/poirrii/www/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
       #2 /home/poirrii/www/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
       #3 /home/poirrii/www/wp-includes/rest-api.php(561): do_action('rest_api_init', Object(WP_REST_Server))
       #4 /home/poirrii/www/wp-includes/rest-api.php(387): rest_get_server()
       #5 /home/poirrii/www/wp-includes/class-wp-hook.php(307): rest_api_loaded(Object(WP))
       #6 /home/poirrii/www/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
       #7 /home/poirrii/www/wp-includes/plugin.php(524): WP_Hook->do_action(Array)
       #8 /home/poirrii/www/wp-includes/class-wp.php(398): do_action_ref_array('parse_request', Array)
       #9 /home/poirrii/www/wp-includes/class-wp.php(770): WP->parse_request('')
       #10 /home/poirrii/www/wp-includes/functions.php(1330): WP->main('')
       #11 /home/poirrii/www/wp-blog-header.php(16): wp()
       #12 /home/poirrii/www/index.php(17): require('/home/poirrii/w...')
       #13 {main}
         thrown dans /home/poirrii/www/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php à la ligne 57
   
       2022-06-02T09:25:40+02:00 CRITICAL Uncaught Error: Failed opening required '/home/poirrii/www/wp-content/plugins/woocommerce/src/Internal/Admin/Notes/WooSubscriptionsNotes.php' (include_path='.:/usr/local/php8.1/lib/php') in /home/poirrii/www/wp-content/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php:90
       Stack trace:
       #0 /home/poirrii/www/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(164): Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_9_1\PHP_Autoloader::load_class('Automattic\\WooC...')
       #1 /home/poirrii/www/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(103): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->includes()
       #2 /home/poirrii/www/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(86): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->on_plugins_loaded()
       #3 /home/poirrii/www/wp-content/plugins/woocommerce/src/Admin/Composer/Package.php(65): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->init()
       #4 /home/poirrii/www/wp-content/plugins/woocommerce/src/Packages.php(64): Automattic\WooCommerce\Admin\Composer\Package::init()
       #5 /home/poirrii/www/wp-content/plugins/woocommerce/src/Packages.php(44): Automattic\WooCommerce\Packages::load_packages()
       #6 /home/poirrii/www/wp-includes/class-wp-hook.php(307): Automattic\WooCommerce\Packages::on_init('')
       #7 /home/poirrii/www/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
       #8 /home/poirrii/www/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
       #9 /home/poirrii/www/wp-settings.php(461): do_action('plugins_loaded')
       #10 /home/poirrii/www/wp-config.php(92): require_once('/home/poirrii/w...')
       #11 /home/poirrii/www/wp-load.php(50): require_once('/home/poirrii/w...')
       #12 /home/poirrii/www/wp-blog-header.php(13): require_once('/home/poirrii/w...')
       #13 /home/poirrii/www/index.php(17): require('/home/poirrii/w...')
       #14 {main}
         thrown dans /home/poirrii/www/wp-content/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php à la ligne 90
       ```
   
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15701742)
 * Hi
    And [https://www.poirriez.com/boutique/](https://www.poirriez.com/boutique/)
   doesn’t link anymore to my shop
 *  Plugin Support [Paulo P – a11n](https://wordpress.org/support/users/paulostp/)
 * (@paulostp)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15701870)
 * Hello,
 * Thanks for sharing the updated logs.
 * For additional troubleshooting, I would suggest you perform a full [conflict test](https://woocommerce.com/document/how-to-test-for-conflicts/).
   To perform tests without affecting your live site, you can use a staging site(
   your host might have that feature, but you can create it with [WP Staging](https://wordpress.org/plugins/wp-staging/)
   as an alternative).
 * Then, set your staging site’s theme to [Storefront](https://wordpress.org/themes/storefront/),
   disable all plugins except for WooCommerce, and check if the critical errors 
   persist there too.
 * If they don’t, then enable the plugins one by one until you find the one that
   is causing problems.
 * Please, let us know how it goes.
 *  Thread Starter [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * (@epoirriez)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15705163)
 * Ok, i tested,
    Now it comes back without Fatal error, but my shop page doesn’t
   work anymore : [https://www.poirriez.com/boutique/](https://www.poirriez.com/boutique/)
   No more link working to this page…
 *  Plugin Support [Paulo P – a11n](https://wordpress.org/support/users/paulostp/)
 * (@paulostp)
 * [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/#post-15705232)
 * I understand that after you created the staging site and disabled all plugins
   except for WooCommerce, you were able to confirm that the critical errors disappear.
   That’s great!
 * Now you would continue with the conflict test and reactivate each plugin until
   you find the one that is causing the critical error.
 * You can find additional details about the conflict test here: [https://woocommerce.com/document/how-to-test-for-conflicts/](https://woocommerce.com/document/how-to-test-for-conflicts/)

Viewing 15 replies - 1 through 15 (of 18 total)

1 [2](https://wordpress.org/support/topic/fatal-error-4175/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/fatal-error-4175/page/2/?output_format=md)

The topic ‘Fatal error’ is closed to new replies.

 * ![](https://ps.w.org/woocommerce/assets/icon.svg?rev=3234504)
 * [WooCommerce](https://wordpress.org/plugins/woocommerce/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/woocommerce/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/woocommerce/)
 * [Active Topics](https://wordpress.org/support/plugin/woocommerce/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/woocommerce/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/woocommerce/reviews/)

 * 18 replies
 * 7 participants
 * Last reply from: [epoirriez](https://wordpress.org/support/users/epoirriez/)
 * Last activity: [4 years ago](https://wordpress.org/support/topic/fatal-error-4175/page/2/#post-15705448)
 * Status: resolved