{"id":18730131,"date":"2025-11-24T08:57:19","date_gmt":"2025-11-24T08:57:19","guid":{"rendered":"https:\/\/wordpress.org\/support\/topic\/fatal-error-on-latest-woocommerce\/"},"modified":"2025-11-24T08:57:19","modified_gmt":"2025-11-24T08:57:19","slug":"fatal-error-on-latest-woocommerce","status":"publish","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/fatal-error-on-latest-woocommerce\/","title":{"rendered":"Fatal Error on latest Woocommerce"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hi, I had a fatal error caused by the plugin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PHP Fatal error:  Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function \"_multusre_fallback_new_user\" not found or invalid function name in \/var\/www\/vhosts\/example.com\/html\/wp-includes\/class-wp-hook.php:326<br \/>Stack trace:<br \/>#0 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/class-wp-hook.php(348): WP_Hook-&gt;apply_filters()<br \/>#1 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/plugin.php(<br \/>                                                         517): WP_Hook-&gt;do_action()<br \/>#2 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/user.php(2621): do_action()<br \/>#3 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/user.php(2916): wp_insert_user()<br \/>#4 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/ms-functions.php(1356): wp_create_user()<br \/>#5 \/var\/www\/vhosts\/example.com\/html\/wp-includes\/ms-functions.php(1219): wpmu_create_user()<br \/>#6 \/var\/www\/vhosts\/example.com\/html\/wp-admin\/user-new.php(244): wpmu_activate_signup()<br \/>#7 {main}<br \/>  thrown in \/var\/www\/vhosts\/example.com\/html\/wp-includes\/class-wp-hook.php on line 326<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the fix suggested:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The bug: The plugin had mismatched callback function names in add_action() calls. It referenced functions with a leading underscore (e.g., _multusre_fallback_new_user) but the actual functions were defined without the underscore (e.g., multusre_fallback_new_user). Additionally, since the plugin uses a PHP namespace, the callbacks needed the full namespace path.<br \/>Fixes applied:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Line 24: &#8216;_multusre_fallback_new_user&#8217; \u2192 <strong>NAMESPACE<\/strong> . &#8216;\\multusre_fallback_new_user&#8217;<br \/>Line 82: &#8216;_multusre_handle_new_user&#8217; \u2192 <strong>NAMESPACE<\/strong> . &#8216;\\multusre_handle_new_user&#8217;<br \/>Line 142: &#8216;_multusre_notify_existing_user&#8217; \u2192 <strong>NAMESPACE<\/strong> . &#8216;\\multusre_notify_existing_user&#8217;<br \/>Line 195: &#8216;_multusre_settings_page&#8217; \u2192 <strong>NAMESPACE<\/strong> . &#8216;\\multusre_settings_page&#8217; (also fixed a parameter order issue in add_submenu_page)<\/p>\n","protected":false},"template":"","class_list":["post-18730131","topic","type-topic","status-publish","hentry","topic-tag-fatal-error"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/18730131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/18730131\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=18730131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}