Paul M.
Forum Replies Created
-
Thanks for the fast reply, Mykola.
Actually I got some similar advice when I ran the issue through Perplexity (AI), which suggested a kind of ‘graceful fallback’ code and even trying to make the call through “getAdminNotifier” as well.
Note that I haven’t fully tested this option yet (see below).
My concern is that during a bulk import of WooCommerce products, maybe there is something triggering a warning, or some other kind of notification, that I might be missing (eg., a resource issue?) so certainly I want any errors or notifications to be captured. It seems the crash does not happen if the import batch is only small; it takes several hundred product lines in the import before it happens.
The workaround I have tested so far (successfully), is to deactivate the T.P.T. plugin, run the bulk product import, then re-activate the plugin after that. It looks like this solution works: no fatal errors, and all imported products display their tiered pricing table successfully.
Anyway, I look forward to installing the update release when you have it ready.
Thanks again,
Paul M.
Perplexity AI Code for “Seen notifications”:
…<tr>
<td data-export-label="Tiered Pricing: Seen notifications">
<?php esc_html_e( 'Seen notifications', 'tier-pricing-table' ); ?>:
</td>
<td>
<?php
/* $seenNotifications = $this->getContainer()->getNotificationManager()->getSeenNotifications();
*
* echo esc_html( implode( ', ', array_keys( $seenNotifications ) ) );
*/
$seenNotifications = [];
$container = $this->getContainer();
$notificationManager = null;
// 1. Try NotificationManager if the container exposes it.
if ( method_exists( $container, 'getNotificationManager' ) ) {
$notificationManager = $container->getNotificationManager();
}
// 2. If that didn't work, fall back to AdminNotifier if available.
if ( ! $notificationManager && method_exists( $container, 'getAdminNotifier' ) ) {
$notificationManager = $container->getAdminNotifier();
}
// 3. Only call getSeenNotifications() if the object actually has that method.
if ( $notificationManager && method_exists( $notificationManager, 'getSeenNotifications' ) ) {
$seenNotifications = $notificationManager->getSeenNotifications();
}
echo esc_html( implode( ', ', array_keys( (array) $seenNotifications ) ) );
?>
</td>
</tr>
<tr>Oops – forgot to include the log entry.
Here it is:2026-06-10T03:50:33+00:00Critical Uncaught Error: Call to undefined method TierPricingTable\Core\ServiceContainer::getNotificationManager() in /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/tier-pricing-table/src/Services/SystemStatusReportService.php:59 Additional context{ “error”: { “type”: 1, “file”: “/home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/tier-pricing-table/src/Services/SystemStatusReportService.php”, “line”: 59 }, “remote-logging”: true, “backtrace”: [ “”, “#0 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/class-wp-hook.php(341): TierPricingTable\Services\SystemStatusReportService->addReport()”, “#1 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()”, “#2 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/plugin.php(522): WP_Hook->do_action()”, “#3 /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/woocommerce/includes/admin/views/html-admin-page-status-report.php(1127): do_action()”, “#4 /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/woocommerce/includes/admin/class-wc-admin-status.php(41): include_once(‘/home/pauliscoo…’)”, “#5 /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/woocommerce/includes/admin/views/html-admin-page-status.php(43): WC_Admin_Status::status_report()”, “#6 /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/woocommerce/includes/admin/class-wc-admin-status.php(29): include_once(‘/home/pauliscoo…’)”, “#7 /home/pauliscool/dev.upbeatpromotions.com.au/wp-content/plugins/woocommerce/includes/admin/class-wc-admin-menus.php(400): WC_Admin_Status::output()”, “#8 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/class-wp-hook.php(341): WC_Admin_Menus->status_page()”, “#9 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()”, “#10 /home/pauliscool/dev.upbeatpromotions.com.au/wp-includes/plugin.php(522): WP_Hook->do_action()”, “#11 /home/pauliscool/dev.upbeatpromotions.com.au/wp-admin/admin.php(264): do_action()”, “#12 {main}”, “thrown” ] }
Version 10.8.1

Thanks for the reply, Moses.
The link and explanation you’ve provided appears to apply to the optional CSV Import Suite plugin.
My issue is with the default, in-built CSV product import feature.
There is no documentation I can find that indicates manual field mapping will only work with certain combinations of column heading names.