Title: critical wordpress error when publish posts
Last modified: May 8, 2025

---

# critical wordpress error when publish posts

 *  Resolved [dariush11](https://wordpress.org/support/users/dariush11/)
 * (@dariush11)
 * [1 year, 1 month ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/)
 * Hi, When we activate the plugin, then for publishing/updating any posts we get
   wordpress critical error. I’ve tested in multiple sites even on wordpress new
   install and the problem still existed. Unfortunately because of this issue we
   can’t use this great plugn! Please help

Viewing 4 replies - 1 through 4 (of 4 total)

 *  Plugin Author [Ben Sibley](https://wordpress.org/support/users/bensibley/)
 * (@bensibley)
 * [1 year, 1 month ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/#post-18456529)
 * Hello,
 * Thanks for using Independent Analytics. I’m very sorry to hear about this error.
 * Can you enable error logging on one of your sites and let me know the error message
   you see when saving/publishing a post? I’m not able to recreate this issue on
   a test site, so knowing the full PHP error message will help us figure out what’s
   going on.
 *  [jorgellb](https://wordpress.org/support/users/jorgellb/)
 * (@jorgellb)
 * [1 year ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/#post-18473621)
 * Se ha producido un error del tipo E_ERROR en la línea 200 del archivo /var/www/
   vhosts/[wp-content/plugins/independent-analytics-pro/IAWP/Admin_Page/Analytics_Page.php.](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/?output_format=md#)
   Mensaje de error: Uncaught Error: Call to a member function has_conflict() on
   null in /var/www/vhosts/[httpdocs/wp-content/plugins/independent-analytics-pro/IAWP/Admin_Page/Analytics_Page.php:200](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/?output_format=md#)
 * corrección completa del archivo `Analytics_Page.php`
 * Los cambios clave realizados son:
    1. Añadí una verificación para asegurar que `$settings` es un array antes de acceder
       a sus elementos
    2. Mejoré el formato del código para mayor legibilidad
    3. Corregí el nombre de la variable `$date_rage` a `$date_range` (aunque esto no
       afectaba al error)
    4. Aseguré que todas las variables necesarias estén disponibles en el scope donde
       se usan
 *     ```wp-block-code
       <?phpnamespace IAWP\Admin_Page;use IAWP\Capability_Manager;use IAWP\Chart;use IAWP\Dashboard_Options;use IAWP\Database;use IAWP\Env;use IAWP\Map;use IAWP\Map_Data;use IAWP\Overview\Overview;use IAWP\Plugin_Conflict_Detector;use IAWP\Quick_Stats;use IAWP\Real_Time;use IAWP\Report;use IAWP\Report_Finder;use IAWP\Tables\Table;use IAWP\Tables\Table_Campaigns;use IAWP\Tables\Table_Clicks;use IAWP\Tables\Table_Devices;use IAWP\Tables\Table_Geo;use IAWP\Tables\Table_Pages;use IAWP\Tables\Table_Referrers;use IAWP\Utils\Security;/** @internal */class Analytics_Page extends \IAWP\Admin_Page\Admin_Page{    protected function render_page()    {        $options = Dashboard_Options::getInstance();        $date_range = $options->get_date_range();        $tab = (new Env())->get_tab();        $report = Report_Finder::new()->fetch_current_report();        $is_showing_skeleton_ui = $report instanceof Report && $report->has_filters();        if ($tab === 'views') {            $table = new Table_Pages();            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $chart = new Chart($statistics, \false, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'referrers') {            $table = new Table_Referrers();            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $chart = new Chart($statistics, \false, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'geo') {            $table = new Table_Geo($options->group());            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $table_data_class = $table->group()->rows_class();            $geo_data = new $table_data_class($date_range);            $map_data = new Map_Data($geo_data->rows());            $chart = new Map($map_data->get_country_data(), null, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'campaigns') {            $table = new Table_Campaigns();            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $chart = new Chart($statistics, \false, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'clicks') {            $table = new Table_Clicks($options->group());            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $chart = new Chart($statistics, \false, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'devices') {            $table = new Table_Devices($options->group());            $statistics_class = $table->group()->statistics_class();            $statistics = new $statistics_class($date_range, null, $options->chart_interval());            $stats = new Quick_Stats($statistics, \false, $is_showing_skeleton_ui);            $chart = new Chart($statistics, \false, $is_showing_skeleton_ui);            $this->interface($table, $stats, $chart);        } elseif ($tab === 'real-time') {            (new Real_Time())->render_real_time_analytics();        } elseif ($tab === 'overview') {            echo (new Overview())->get_report_html();            $this->notices();        }    }    private function interface(Table $table, $stats, $chart)    {        $options = Dashboard_Options::getInstance();        $sort_configuration = $table->sanitize_sort_parameters($options->sort_column(), $options->sort_direction());        ?>        <div data-controller="report"             data-report-name-value="<?php echo Security::string($options->report_name()); ?>"             data-report-relative-range-id-value="<?php echo Security::attr($options->relative_range_id()); ?>"             data-report-exact-start-value="<?php echo Security::attr($options->start()); ?>"             data-report-exact-end-value="<?php echo Security::attr($options->end()); ?>"             data-report-group-value="<?php echo Security::attr($options->group()); ?>"             data-report-filters-value="<?php echo \esc_attr(Security::json_encode($options->filters())); ?>"             data-report-chart-interval-value="<?php echo Security::attr($options->chart_interval()->id()); ?>"             data-report-sort-column-value="<?php echo Security::attr($sort_configuration->column()); ?>"             data-report-sort-direction-value="<?php echo Security::attr($sort_configuration->direction()); ?>"             data-report-columns-value="<?php echo \esc_attr(Security::json_encode($table->visible_column_ids())); ?>"             data-report-quick-stats-value="<?php echo \esc_attr(Security::json_encode($options->visible_quick_stats())); ?>"             data-report-primary-chart-metric-id-value="<?php echo \esc_attr($options->primary_chart_metric_id()); ?>"             data-report-secondary-chart-metric-id-value="<?php echo \esc_attr($options->secondary_chart_metric_id()); ?>"        >            <div id="report-header-container" class="report-header-container">                <?php echo \IAWPSCOPED\iawp_blade()->run('partials.report-header', ['report' => Report_Finder::new()->fetch_current_report(), 'can_edit' => Capability_Manager::can_edit()]); ?>                <?php $table->output_report_toolbar(); ?>                <div class="modal-background"></div>            </div>            <?php echo $stats->get_html(); ?>            <?php echo $chart->get_html(); ?>            <?php echo $table->get_table_toolbar_markup(); ?>            <?php echo $table->get_table_markup($sort_configuration->column(), $sort_configuration->direction()); ?>        </div>        <?php        if (Env::get_tab() === 'geo') {            echo '<div class="geo-ip-attribution">';            echo \esc_html_x('Geolocation data powered by', 'Following text is a noun: DB-IP', 'independent-analytics') . ' ' . '<a href="https://db-ip.com" target="_blank">DB-IP</a>.';            echo '</div>';        }        $this->notices();    }    private function notices()    {        ?><div class="iawp-notices"><?php        if (Capability_Manager::can_edit()) {            $plugin_conflict_detector = new Plugin_Conflict_Detector();            $has_conflict = $plugin_conflict_detector->has_conflict();            $requires_logged_in_tracking = $plugin_conflict_detector->plugin_requiring_logged_in_tracking();                        if ($has_conflict) {                echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                    'notice_text' => $plugin_conflict_detector->get_error(),                    'button_text' => \false,                    'id' => 'plugin-conflict',                    'notice' => 'iawp-error',                    'plugin' => $plugin_conflict_detector->get_plugin(),                    'url' => 'https://independentwp.com/knowledgebase/tracking/secure-rest-api/'                ]);            } elseif (\IAWPSCOPED\iawp_is_pro() && (function_exists('is_plugin_active') || include_once(ABSPATH . 'wp-admin/includes/plugin.php')) && \is_plugin_active('better-wp-security/better-wp-security.php')) {                $settings = \get_option('itsec-storage');                if (\is_array($settings) && \array_key_exists('system-tweaks', $settings)) {                    if (\array_key_exists('plugins_php', $settings['system-tweaks'])) {                        if ($settings['system-tweaks']['plugins_php']) {                            echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                                'notice_text' => \__('The "Solid Security" plugin is disabling PHP execution in the plugins folder, and this is preventing click tracking from working. Please visit the Security > Settings page, click on the Advanced section, click on System Tweaks Settings, uncheck the "Disable PHP Plugins" option, and then save.', 'independent-analytics'),                                'button_text' => \false,                                'id' => 'plugin-conflict',                                'notice' => 'iawp-error',                                'url' => 'https://independentwp.com/knowledgebase/click-tracking/allow-php-execution-plugins-folder/'                            ]);                        }                    }                }            }                        if (\get_option('iawp_need_clear_cache')) {                echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                    'notice_text' => \__('Please clear your cache to ensure tracking works properly.', 'independent-analytics'),                    'button_text' => \__('I\'ve cleared the cache', 'independent-analytics'),                    'id' => 'iawp_need_clear_cache',                    'notice' => 'iawp-warning',                    'url' => 'https://independentwp.com/knowledgebase/common-questions/views-not-recording/'                ]);            }                        $show_logged_in_tracking_notice = $requires_logged_in_tracking && !\get_option('iawp_track_authenticated_users') && !\get_option('iawp_need_clear_cache') && !\get_option('iawp_logged_in_tracking_notice');            if ($show_logged_in_tracking_notice) {                echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                    'notice_text' => '<strong>' . \sprintf(\_x('%s compatibility:', 'Variable is the name of a plugin', 'independent-analytics'), $requires_logged_in_tracking) . '</strong> ' . \__('We recommend you enable tracking for logged-in visitors.', 'independent-analytics'),                    'button_text' => \__('Dismiss', 'independent-analytics'),                    'id' => 'enable-logged-in-tracking',                    'notice' => 'iawp-warning',                    'url' => 'https://independentwp.com/knowledgebase/tracking/how-to-track-logged-in-visitors/'                ]);            }                        if (\IAWPSCOPED\iawp_db_version() > 0 && !Database::has_correct_database_privileges()) {                echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                    'notice_text' => \__('Your site is missing the following critical database permissions:', 'independent-analytics') . ' ' . \implode(', ', Database::missing_database_privileges()) . '. ' . \__('There is no issue at this time, but you will need to enable the missing permissions before updating the plugin to a newer version to ensure an error is avoided. Please click this link to read our tutorial:', 'independent-analytics'),                    'button_text' => \false,                    'id' => 'missing-permissions',                    'notice' => 'iawp-error',                    'url' => 'https://independentwp.com/knowledgebase/common-questions/missing-database-permissions/'                ]);            }                        if (Env::get_tab() === 'clicks') {                if (!\get_option('iawp_clicks_sync_notice')) {                    echo \IAWPSCOPED\iawp_blade()->run('notices.notice', [                        'notice_text' => \__('Click data syncs every 60 seconds. Please allow for this delay when testing clicks on new links.', 'independent-analytics'),                        'button_text' => \__('Dismiss', 'independent-analytics'),                        'id' => 'iawp_clicks_sync_notice',                        'notice' => 'iawp-warning',                        'url' => 'https://independentwp.com/knowledgebase/click-tracking/click-tracking-update-process/'                    ]);                }            }        }        ?>        </div><?php        if (\get_option('iawp_show_gsg') === '1' && !\get_option('iawp_need_clear_cache') && !$show_logged_in_tracking_notice && !$has_conflict && (Env::get_tab() !== 'clicks' || Env::get_tab() === 'clicks' && \get_option('iawp_clicks_sync_notice'))) {            echo \IAWPSCOPED\iawp_blade()->run('notices.getting-started');        }    }}
       ```
   
 *  Plugin Author [Ben Sibley](https://wordpress.org/support/users/bensibley/)
 * (@bensibley)
 * [1 year ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/#post-18474735)
 * Hi [@jorgellb](https://wordpress.org/support/users/jorgellb/),
 * Thanks for bringing this bug to our attention. This is a different error than
   the one OP experienced, which happened in the pos editor. It’s not a good idea
   to manually edit the code because it will get overwritten the next time we release
   an update.
 * This particular error is occurring if the “Getting Started” notice is shown in
   the Analytics menu and a non-admin user with permission to view but not edit 
   the analytics visits the Analytics menu. We will have this patched in our next
   update. For now, if you login as an admin and simply close the notice to watch
   the Getting Started video, that will prevent the error from occurring again.
 *  [jorgellb](https://wordpress.org/support/users/jorgellb/)
 * (@jorgellb)
 * [1 year ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/#post-18474821)
 * thankyou Ben

Viewing 4 replies - 1 through 4 (of 4 total)

The topic ‘critical wordpress error when publish posts’ is closed to new replies.

 * ![](https://ps.w.org/independent-analytics/assets/icon.svg?rev=3504049)
 * [Independent Analytics - WordPress Analytics Plugin](https://wordpress.org/plugins/independent-analytics/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/independent-analytics/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/independent-analytics/)
 * [Active Topics](https://wordpress.org/support/plugin/independent-analytics/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/independent-analytics/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/independent-analytics/reviews/)

 * 4 replies
 * 3 participants
 * Last reply from: [jorgellb](https://wordpress.org/support/users/jorgellb/)
 * Last activity: [1 year ago](https://wordpress.org/support/topic/critical-wordpress-error-when-publish-posts/#post-18474821)
 * Status: resolved