• Resolved epoirriez

    (@epoirriez)


    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)
  • 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

    (@epoirriez)

    That is not the repport i sent above ?

    Hi @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,

    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.

    Hi @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://www.ads-software.com/support/plugin/woocommerce/#new-topic-0

    Thanks

    Thread Starter epoirriez

    (@epoirriez)

    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

    (@epoirriez)

    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

    (@paulostp)

    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 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://www.ads-software.com/support/plugin/colibri-page-builder/
    https://www.ads-software.com/support/plugin/forminator/

    Please, let us know how it goes.

    Hi @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

    (@epoirriez)

    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

    (@epoirriez)

    Hi
    And https://www.poirriez.com/boutique/ doesn’t link anymore to my shop

    Plugin Support Paulo P – a11n

    (@paulostp)

    Hello,

    Thanks for sharing the updated logs.

    For additional troubleshooting, I would suggest you perform a full conflict test. 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 as an alternative).

    Then, set your staging site’s theme to 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

    (@epoirriez)

    Ok, i tested,
    Now it comes back without Fatal error, but my shop page doesn’t work anymore :
    https://www.poirriez.com/boutique/
    No more link working to this page…

    Plugin Support Paulo P – a11n

    (@paulostp)

    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/

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘Fatal error’ is closed to new replies.